微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > MCU和DSP > 基于ARM的CAN总线电缆沟道监测系统的设计

基于ARM的CAN总线电缆沟道监测系统的设计

时间:05-22 来源:作者:陈东 孙万荣 胡方明 点击:

CON8插座是模拟传感器的连接插座,24 V用于给模拟传感器供电,信号输出引脚直接连接到运放LF347输入引脚。温度传感器输出与被测温度成线性的4~20 mA的电流信号。所以系统采用射随器,先让电流流过125 Ω电阻到地,将4~20 mA电流信号转换成相对应0.5~2.5 V电压。电压输入信号经过射随器,运放输出的电压信号大小不变,直接连接到LPC2292的A/D引脚。这样下位机将数字、模拟传感器各种信号经A/D转换器转换采集后,打包通过CAN总线直接上传到上位机,上位机再通过数值转换,就可得到沟道中各种信息真实值。这种电流转换电压设计不仅简单,而且精度高,稳定性好。

5 CAN通信软件设计

设计选用μC/OS-II嵌入式实时操作系统来实现CAN通信,在LPC2292上移植成功后,可用作为内核来编写监控系统的控制软件。
5.1 运行μC/OS-II操作系统

工程的CAN实现主要通过建立两个任务来实现,即CAN发送任务和CAN采集任务。在主函数main中先利用OSInit()初始化μC/OS-II操作系统,建立一个信号量并把信号计数器清零,然后利用OSTaskCreate()创建第一个任务Tasksend(),再通过OSStart()启动操作系统的多任务调度机制,开始运行系统的主要应用程序。主函数代码如下:


5.2 数据的收发

接收数据可采用查询方式或中断方式。为了提高效率,数据接收采用中断方式。两个任务中,设置任务Tasksend()的优先级最高,任务Taskrev()的优先级次高。任务Tasksend()主要负责初始化CAN,初始化定时器0,初始化VIC,建立信号量用于任务Taskadrev()与中断通信并建立新的任务Taskrev(),并处理采集数据。任务Taskadrev()一直处于等待信号状态,一旦从中断得到信号,立刻采集数据,并通过邮箱将采集到数据指针发给任务Tasksend()。

基于μC/OS-II的CAN接收数据、发送数据任务流程图如图5,6所示。



6 结语

以ARM7TDMI内核的嵌入式微控制器LPC2292作为主控制器、CAN总线作为数据传输方式通信的嵌入式系统得到了广泛的应用,同时CAN通信的优良可靠性也成为影响系统性能的关键。以LPC2292为开发平台,并且在成功地移植μC/OS-II的基础上,研究CAN通信软件设计。实验结果说明该系统设计可行,并且满足了快速、准确、多信息量的要求。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top