论文部分内容阅读
数据采集系统的发展经历了从单片机、PLC,到现在的以PC为核心的现代数据采集系统,但是它们都存在许多缺点与不足,如单片机频率较低,与互联网相连比较麻烦;PLC价格相对较贵和笨重;PC机则多用以商业为目的的windows操作系统,漏洞较多、安全隐患大。现阶段数据采集系统正向后PC时代发展-嵌入式数据采集系统。本文针对后PC时代、企业信息一体化发展的需求,以及数据采集系统的轻型化、网络化、信息化发展需求,设计了一种基于Linux的远程CAN-bus数据采集系统,该系统可以通过CAN总线方便、安全、经济地实现工业现场数据采集,并能够通过网络方便、快捷地把工业现场数据提供给企业管理层,促进了企业信息一体化的发展。
本文首先分析了数据采集系统发展状况和趋势,并结合当前应用较为广泛的工业现场总线CAN总线,构架了远程数据采集系统的总体设计方案,然后对系统的整体方案的原理和关键性技术展开了研究。接着对系统硬件和各模块电路进行设计,其中包括电源电路、存储电路、显示电路,重点介绍了CAN通信模块和以太网通信电路。其次,详细的给出了嵌入式Linux软件开发平台的构建,其中包括交叉编译工具的安装、主机和目标板的通信,重点介绍了U-BOOT的启动流程和移植,kernel的启动流程和构造及移植,以及文件系统的框架结构和制作及移植。随后,围绕着软件系统设计方案的重点和难点展开研究。首先分析了Linux2.6内核为了统一管理设备驱动而引入的设备模型,然后在此基础上分析了虚拟总线平台设备驱动,研究了SPI总线模型的基础上设计了CAN总线控制器的设备驱动,并分析了CAN总线控制器设备驱动的SPI总线探测函数、打开函数、报文发送函数、波特率设置函数、报文的验收滤波设置函数和中断等函数。最后,在系统软件的应用层次面为了实现远程数据的动态采集,移植了嵌入式web服务器boa和动态接口CGI。针对两种不同网络协议,在应用层次面采用多线程编程以满足两种不同协议之间的通信,从而实现远程的数据采集,并对系统进行了简单的测试。