CAN控制器对于CPU来说是以确保双方独立工作的寄存器映像外围设备出现的,微控制器和CPU之 间状态、控制和命令的交换都是通过在复位模式或工作模式下对这些寄存器的读写来完成的。初始化CAN内部寄存器时注意使得各节点的位速率必须一致,而且接、发双方必须同步。发送一帧数据采用高速DMA,它允许在最多2个周期内,在CAN控制器和主RAM之间传送一个完整的报文(最多10个字节)。CPU功能的极大增强是由于高速传送是在后台完成的。一次成功的DMA传送后DMA位被复位。DMA传送期间,CPU可以处理下一条指令,然而,不允许对数据存贮器、CANADR、CANDAT、CANCON或CANSTA的访问。置DMA位后,各个中断均被禁止,直至传送结束。复位状态期间(复位请求位为高)不能进行DMA传送。为提高通信的实时性,报文的接收采用中断接收方式,这样也可保证接收缓存器不会出现数据溢出现象。
主机程序包括测量和控制子程序、通信子程序、数据处理子程序等。数据测量和控制子程序用来控制下位机进行测量,通信子程序根据通信协议发送控制命令并接收测量数据,数据处理子程序实现对数据的预处理和存储。主机程序用C语言编写。主机程序流程见图4。
3 水下物理场数据采集实验
在对水下物理场数据进行采集时,需要测量的信号共有3种8路:电场三个分量,磁场三个分量以及传感器在海底的倾斜角度两个分量。实际测量时,整个测量体(包括传感器,信号调理电路,水密容器等)放置在海底(约30米深),测量体距离岸边接收主机120米。其他一些实验参数设置如下:传输波特率为1Mbps,各节点的采样频率为10KHz,每采样4路信号向主机发送一次数据,每次送出4组8字节数据,分辨率:0.0495μA/m;信号输入范围:-50mV~50mV;信号频率带宽:500Hz~800Hz;供电电压:±5V,9V,±15V。测量系统在较复杂的海洋环境条件下从上午9:00开始工作,中间不停机,到下午5:00测量完毕。测量结果经过分析与理论计算吻合说明该系统工作稳定、可靠。此外,全套测量系统硬件设备(包括计算机与传感器)造价低于3万元。
4 结论
CAN总线已被公认为是最有前途的几种现场总线之一,在一些高档汽车车载系统中已经得到了广泛应用,也因其高性能价格比、实现简单等突出优点深得越来越多的研发人员的青睐。本文的创新点是提出一种基于CAN总线结构的远程数据采集系统方法,将CAN总线技术应用于工业现场控制中,设计了硬 件电路和软件,并得到实际应用。该系统可在复杂的海洋中实现对8路传感器信号的实时采集与传送,实验证明该系统具有结构简单、性能可靠、传输距离远、价格低廉等优点。该系统设计方法也可应用到其他需要数据采集的多节点系统中去。