微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 一种基于ARM-LINUX的物流复检系统设计方案

一种基于ARM-LINUX的物流复检系统设计方案

时间:06-09 来源:互联网 点击:

初始化,对CAN的初始化需要在初始化模式中进行,通过对CAN->MCR的INRQ位编程为1来进入初始化模式,与此同时硬件会置位CAN->MSR的INAK来应答。在完成初始化后,复位CAN->MCR的INRQ位,在CAN与总线取得同步后,进入正常模式。正常模式中就可以完成报文的正常收发。为发送报文,首先要查询CAN-TSR寄存器,选择一个空的邮箱,设置标识符,数据长度,和待发送数据,然后将TXRQ置位来请求发送。由条码扫描器通过串口发送过来的条码格式为ASSIC码,并且条码长度也有差异,而一个CAN数据报文最多发送八个字节的数据,所以要分多次发送,最后在条码数据的结尾加入‘/r’和‘/n’字符表示一次完整的条码传输。

2.4 系统应用程序的设计

在完成RT-Thread到STM32F103RBT6目标平台的移植之后,接下来的工作就是开发系统应用程序,来实现所需要的功能。应用程序开发的第一步就是完成相关硬件或者外设的初始化。存RT-Thread中,相关的初始化工作可以有两种方法来完成。一种是同一的在board.c文件中编写对应模块的初始化函数,并将其放在rt_hw_board_init函数内调用。另一种方式是放在线程函数中完成。然后进行应用线程的开发,采用多线程技术可以以较小的系统开销,降低应用程序开发的复杂度,提高系统的可靠性。RT-Thread以线程为最小的调度单位,采用基于优先级的全抢占式调度算法。针对本应用,创建了CAN线程、barcode线程、daemon及deal线程这四个主要线程,并通过线程问同步和通信方法进行它们之间的协调。

3 主控节点系统的设计

3.1 主控节点硬件系统的设计

主控节点是整个复检系统的核心,它主要完成条形码信息的处理工作,其硬件的结构如图4所示。主控节点有多个模块组成,各个模块所需电源电压不同,处理器核心、片上外设模块所需电压也不同,这些不同的电压由供电系统提供。触摸屏为系统的输入输出接口,用来显示查询数据库后的条码信息,接收操作员的输入命令。CAN模块由SPI接口的CAN控制器及驱动器组成,用来与终端节点通信,主控节点的CAN接口设计如图5所示。为了通过网络服务数据库,配备了以百兆太网通信接口。RS232接口被用为Linux和引导程序的控制台,用来辅助开发LED模块在实验中用来模拟向分拣系统控制器通报分拣错误。S3C6410作为主控节点的控制核心还协调各个模块的工作。

3.2 主控节点软件系统的设计

主控节点使用Linux作为其软件系统平台,软件系统的结构如图6所示。位于最底层的是设备硬件,为了能够使用这些设备,需要开发相应的设备驱动程序。接着是Linux内核和协议栈,主要有以太网的TCP/IP协议栈和Socket CAN的协议栈。Linux提供了统一的编程接口供应用程序调用。为了方便系统开发,应用软件大多使用库来提高开发效率,本系统中主要部署了QT库、C库以及MySQL库等。最终的复检系统应用程序调用内核编程接口和功能强大的各种库来实现其功能。目标板使用的是ARM S3C6410处理器和Linux操作系统,两者通过以太网和RS232接口连接,采用ARM-UNUX-GCC-4.3.2进行编译开发。选择XP与Fedora9的网络连接方式选择桥接,XP和Fedora9以及目标板需要通过以太网链接在一个局域网中。采用与Linux内核源码一脉相承的U-Boot来对Bootloader进行移植,并对Linux的内核进行开发。最后,对复检系统的应用程序进行开发,QT是一个跨平台的图形界面库,支持Linux、Windows等系统,可方便应用在嵌入式系统中,另外用户需要自行设计Socket CAN系统。本研究中使用用QT的图形界面库来设计主控节点的图形界面,使用Qt Creator中所见即所得的UI开发工具设计图像界面,界面显示通过CAN收到的相应下线通道的货物条码和通道,在查询数据库后,将查询到的货物目的地,运输车辆的号牌最示出来。如果发生错误,会弹出QMassageBox警告。主控节点应用程序流程图如图7所示。

4 结束语

本文详细阐述了物流复检系统各个硬件平台和软件系统的开发,完成了ARM-LIUNUX的交叉编译开发环境的搭建等。实际应用表明,设计的基于ARM-LINUX的物流复检系统能够很好的解决物流分拣系统出现的分拣错误,极具实用价值。而且本文中采用的分拣识别是条形码识别技术,也可以很好的拓展到其他方式,比如电子标签等。

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

网站地图

Top