传感器开发平台
登录
直播中
卢兰凤
7年用户
224经验值
私信
关注
DAC7714在嵌入式激光跟踪仪有什么用?
开启该帖子的消息推送
DAC7714
嵌入式
转换器
设备驱动程序在Linux内核中占有极其重要的位置,在一个嵌入式系统中,除了CPU、内存以及其他很少的几个部件以外,所有的设备控制操作都必须由驱动程序来完成。系统设计者必须为系统中的每个外设开发相应的驱动程序,否则设备无法在Linux下正常工作。
回帖
(1)
薛珊珊
2020-4-7 11:48:50
在基于AT91RM9200处理器的某嵌入式激光跟踪仪中,为了实现目标的快速、平稳跟踪,需要控制两路电机,即:方位电机、俯仰电机。其原理如下:通过不断读取两路角度编码器的数据,计算出两路电机实际角度与期望角度的偏差,利用反馈控制的原理,驱动两路电机跟踪目标。两路电机的控制电压为5V时,电机停止不动;控制电压为0V时,电机以最大速度顺时针旋转;控制电压为10V时,电机以最大速度逆时针旋转。
根据上述控制要求,选择4通道12位的串行DA转换器——DAC7714转换器作为两路电机的控制驱动芯片。该芯片在嵌入式Linux系统下驱动程序的优劣,将直接决定整个仪器的跟踪效果,也是嵌入式开发的需要解决的基本问题之一。
1 概述
DAC7714是美国TI公司推出的一款4通道12位串行输入、电压输出型DA转换器。其供电电压为±15 V,可以实现输出自动保持,采用此串口芯片除了具有节省单片机资源的优点外,还具有同时输出多路0~10 V(参考电压为+10 V和0 V),特别适用于MCU资源紧缺而控制通道比较多的场合。
DAC7714性能特点:
1)12位分辨率,串行接口;
2)功耗仅为250 mW;
3)4个模拟输出通道,电压输出;
4)线性误差±1LSB;
5)支持单极性(0~10 V)或双极性(-10 V~+10 V)输出;
6)自动输出保持;
7)复位信号可选,不同复位方式具有不同初始值。
2 硬件设计
嵌入式激光跟踪仪硬件比较复杂,这里进介绍与电机驱动相关的DAC7714与AT91RM9200的硬件连接部分。由于实际使用时的电机功率较大,需要在DAC7714的两路输出再加一级驱动电路才能真正驱动电机。
2.1 DAC7714引脚及功能
DAC7714为SOJ16封装,具体引脚及功能介绍如下:
VOUTA~VOUTD:4个模拟量输出
CS:片选端,低电平有效
CLK:串行数据时钟端
VCC:正电源,通常为+15 V
VSS:负电源,通常为0或-15 V
GND:地
VREFL:模拟输出电压参考(下限)
VREFH:模拟输出电压参考(上限)
SDI:串行数据输入
LOADDACS:转换结束判断位
RESET和RESETSEL:芯片复位设置位
2.2 DAC7714硬件设计
DAC7714硬件设计比较简单,其可编程引脚RESET、LOADDACS、CS、CLK、SDI分别与AT91RM9200的IO口PA0-PA1、PA3-PA5连接,为下一步驱动程序开发打下基础;其VOUTA、VOUTB接两路电机的控制信号;VREFL接地,VREFH接+10 V,使用单极性接法。其具体连接如图1所示。
3 驱动程序设计
驱动程序的目的是驱动硬件正常工作,所以编写驱动程序要针对特定的硬件来进行。在嵌入式激光跟踪仪中,需要编写DAC7714的驱动程序,内核将以设备节点的形式调用、管理该芯片。DAC7714属于串行DA转换器,需要根据其工作时序图,控制AT91RM9200的上述引脚,模拟其工作时序,在内核Linux-2.4.19中完成驱动程序的设计。
3.1 DAC7714工作时序图
DAC7714完成一次数模转换,需要在CS为低电平期间,在CLK的上升沿,串行输出16位数据到SDI。16位数据中,前两位A1和A0的组合将决定对某一通道进行转换输出(00-A通道、01-B通道、10-C通道、11-D通道),接下来两位为无效位,最后的12位数据即真正需要转换的数据。其工作时序图如图2所示。
3.2 驱动程序组成
DAC7714驱动程序作为设备文件,同样分为open、write、release等几个操作。对于内核来说,DAC7714属于字符型设备,并为该设备命名为Name[]=“DAC7714drv”。该模块在使用时采用insmod命令进行动态加载,使用rmmod命令进行动态卸载。DAC7714驱动程序主要由注册函数、注销函数、初始化函数、DA输出函数构成。
用户在使用insmod命令加载模块时,实际调用的是以下注册函数:
应用程序中使用open函数打开DAC7714设备时,实际调用以下函数完成对控制器相应引脚的初始化操作(以PA0连接RESET为例介绍):
在DAC7714_write函数中,控制AT91RM9200的PA0-PA5引脚电平,模拟图2的时序完成DA输出,其流程图3所示。
4 测试程序设计
在测试程序中,实现对DAC7714的4路输出分别进行测试。测试方法是,对于指定的数字量,通过万用表或示波器测量DAC7714相应通道的电压输出值,若该值与理论值一致,则表明驱动程序正确。
首先调用open函数打开DAC7714设备,然后控制数字量从0依次加1,并结合通道号生成DAC7714所能识别的控制数字量,然后调用write函数控制输出,当控制数字量达到最大值时,切换下一通道。测试程序主要代码如下。
5 结论
文中给出了DAC7714硬件设计方案,在AT91RM9200+嵌入式Linux环境下,详细介绍了基于其驱动程序和测试程序的设计方法,揭示了嵌入式开发的一般规律。在实际测试过程中,将4路通道的实际输出电压与理论电压进行了比较,误差最大为0.1%,完全能够满足激光跟踪的要求。
在基于AT91RM9200处理器的某嵌入式激光跟踪仪中,为了实现目标的快速、平稳跟踪,需要控制两路电机,即:方位电机、俯仰电机。其原理如下:通过不断读取两路角度编码器的数据,计算出两路电机实际角度与期望角度的偏差,利用反馈控制的原理,驱动两路电机跟踪目标。两路电机的控制电压为5V时,电机停止不动;控制电压为0V时,电机以最大速度顺时针旋转;控制电压为10V时,电机以最大速度逆时针旋转。
根据上述控制要求,选择4通道12位的串行DA转换器——DAC7714转换器作为两路电机的控制驱动芯片。该芯片在嵌入式Linux系统下驱动程序的优劣,将直接决定整个仪器的跟踪效果,也是嵌入式开发的需要解决的基本问题之一。
1 概述
DAC7714是美国TI公司推出的一款4通道12位串行输入、电压输出型DA转换器。其供电电压为±15 V,可以实现输出自动保持,采用此串口芯片除了具有节省单片机资源的优点外,还具有同时输出多路0~10 V(参考电压为+10 V和0 V),特别适用于MCU资源紧缺而控制通道比较多的场合。
DAC7714性能特点:
1)12位分辨率,串行接口;
2)功耗仅为250 mW;
3)4个模拟输出通道,电压输出;
4)线性误差±1LSB;
5)支持单极性(0~10 V)或双极性(-10 V~+10 V)输出;
6)自动输出保持;
7)复位信号可选,不同复位方式具有不同初始值。
2 硬件设计
嵌入式激光跟踪仪硬件比较复杂,这里进介绍与电机驱动相关的DAC7714与AT91RM9200的硬件连接部分。由于实际使用时的电机功率较大,需要在DAC7714的两路输出再加一级驱动电路才能真正驱动电机。
2.1 DAC7714引脚及功能
DAC7714为SOJ16封装,具体引脚及功能介绍如下:
VOUTA~VOUTD:4个模拟量输出
CS:片选端,低电平有效
CLK:串行数据时钟端
VCC:正电源,通常为+15 V
VSS:负电源,通常为0或-15 V
GND:地
VREFL:模拟输出电压参考(下限)
VREFH:模拟输出电压参考(上限)
SDI:串行数据输入
LOADDACS:转换结束判断位
RESET和RESETSEL:芯片复位设置位
2.2 DAC7714硬件设计
DAC7714硬件设计比较简单,其可编程引脚RESET、LOADDACS、CS、CLK、SDI分别与AT91RM9200的IO口PA0-PA1、PA3-PA5连接,为下一步驱动程序开发打下基础;其VOUTA、VOUTB接两路电机的控制信号;VREFL接地,VREFH接+10 V,使用单极性接法。其具体连接如图1所示。
3 驱动程序设计
驱动程序的目的是驱动硬件正常工作,所以编写驱动程序要针对特定的硬件来进行。在嵌入式激光跟踪仪中,需要编写DAC7714的驱动程序,内核将以设备节点的形式调用、管理该芯片。DAC7714属于串行DA转换器,需要根据其工作时序图,控制AT91RM9200的上述引脚,模拟其工作时序,在内核Linux-2.4.19中完成驱动程序的设计。
3.1 DAC7714工作时序图
DAC7714完成一次数模转换,需要在CS为低电平期间,在CLK的上升沿,串行输出16位数据到SDI。16位数据中,前两位A1和A0的组合将决定对某一通道进行转换输出(00-A通道、01-B通道、10-C通道、11-D通道),接下来两位为无效位,最后的12位数据即真正需要转换的数据。其工作时序图如图2所示。
3.2 驱动程序组成
DAC7714驱动程序作为设备文件,同样分为open、write、release等几个操作。对于内核来说,DAC7714属于字符型设备,并为该设备命名为Name[]=“DAC7714drv”。该模块在使用时采用insmod命令进行动态加载,使用rmmod命令进行动态卸载。DAC7714驱动程序主要由注册函数、注销函数、初始化函数、DA输出函数构成。
用户在使用insmod命令加载模块时,实际调用的是以下注册函数:
应用程序中使用open函数打开DAC7714设备时,实际调用以下函数完成对控制器相应引脚的初始化操作(以PA0连接RESET为例介绍):
在DAC7714_write函数中,控制AT91RM9200的PA0-PA5引脚电平,模拟图2的时序完成DA输出,其流程图3所示。
4 测试程序设计
在测试程序中,实现对DAC7714的4路输出分别进行测试。测试方法是,对于指定的数字量,通过万用表或示波器测量DAC7714相应通道的电压输出值,若该值与理论值一致,则表明驱动程序正确。
首先调用open函数打开DAC7714设备,然后控制数字量从0依次加1,并结合通道号生成DAC7714所能识别的控制数字量,然后调用write函数控制输出,当控制数字量达到最大值时,切换下一通道。测试程序主要代码如下。
5 结论
文中给出了DAC7714硬件设计方案,在AT91RM9200+嵌入式Linux环境下,详细介绍了基于其驱动程序和测试程序的设计方法,揭示了嵌入式开发的一般规律。在实际测试过程中,将4路通道的实际输出电压与理论电压进行了比较,误差最大为0.1%,完全能够满足激光跟踪的要求。
举报
更多回帖
rotate(-90deg);
回复
相关问答
DAC7714
嵌入式
转换器
刚刚学完51单片机的,想学
嵌入式
,
有
什么
嵌入式
书可以介绍,适合新手入门的?
2016-10-11
4181
C++
在
嵌入式
领域的用处是什么?
2019-11-06
1827
基于深度神经网络的
激光
雷达物体识别系统及其
嵌入式
平台部署
2021-01-04
1572
具体的
嵌入式
产品
有
哪些,
嵌入式
是做什么的
2021-12-24
2427
一文读懂
嵌入式
是什么
2021-11-12
1191
linux系统可以
在
arm上面开发一个低频脉冲治疗
仪
嵌入式
设备...
2014-04-15
3366
什么是包络
跟踪
?包络
跟踪
有
什么用
?
2019-08-01
7201
如何设计
嵌入式
ARM Linux步进电机驱动程序?
2019-08-13
2313
激光
陀螺
仪
有
什么特点?
2019-10-23
3264
什么是
嵌入式
系统?
嵌入式
操作系统
有
哪几类?
2021-04-25
2526
发帖
登录/注册
20万+
工程师都在用,
免费
PCB检查工具
无需安装、支持浏览器和手机在线查看、实时共享
查看
点击登录
登录更多精彩功能!
首页
论坛版块
小组
免费开发板试用
ebook
直播
搜索
登录
×
20
完善资料,
赚取积分