管理培训搜索
18318889481

IT
| 网络安全管理师

信息安全工程 网络蠕虫

| 系统集成项目管理工程师

每日一练 报名考试 考试大纲 知识考点 综合知识 直播动态 考试用书 政策法规 系统集成产学研实践 资质认定

| 金融科技师

职业前景 CGFT专题 政策动态

| 网络工程师

考试动态 每日一练 学习笔录 技术考点 知识考点 直播动态 考试用书 技术与应用 网络工程 网络技术入门 考试大纲

| 计算机学苑

数字媒体艺术 计算机科学与技术 软考报名 信息处理技术员 行业资讯 考试大纲 直播动态 网络安全 网络管理 通信技术 OpenHarmony 计算机与网络 企业信息化 软件工程 Linux 嵌入式Linux开发基础(ARMAtom) 离散数学 操作系统 C++程序设计 Java 语言程序设计 智能感知与无人系统 机器学习算法与人工智能 Python 软考资讯

| 计算机应用水平考试

考试动态 报考指南 全国计算机应用水平考试 中国计算机等级考试 江西计算机等级考试 广东计算机等级考试 江苏计算机等级考试 贵州计算机等级考试 湖南计算机等级考试 福建计算机等级考试 河南计算机等级考试 广西计算机等级考试 山西计算机等级考试 吉林计算机等级考试 江苏计算机等级考试 湖北计算机等级考试 北京计算机等级考试 安徽计算机等级考试 宁夏计算机等级考试 浙江计算机等级考试 陕西计算机等级考试 湖北计算机等级考试 河北计算机等级考试 天津计算机等级考试

| 电子商务平台

互联网营销师 电子商务师 农村电商

| 计算机技术与软件专业技术资格(水平)考试
| 信息系统项目管理师

学习笔记 考试动态 直播动态 考试用书 考试大纲 信息系统项目管理

| 信息系统监理师

IT实务 直播预告 信息系统监理师综合 答疑QA 监理资质

| 信息处理技术员

考试动态 直播动态 考试用书 知识分享 技术百科

| 基于嵌入式Linux的智能重型拖拉机远程监控系统开发当前您所在的位置:首页 > IT > 计算机学苑 > 软件工程 > 嵌入式Linux开发基础(ARMAtom)

基于嵌入式Linux的智能重型拖拉机远程监控系统开发

朱青松1,李军伟1*,王进2,李德芳2,高松1

1.山东理工大学 交通与车辆工程学院,山东 淄博 255049;2.雷沃重工股份有限公司,山东 潍坊 261200

摘要:为监控重型拖拉机运行状态,提高运行可靠性,设计开发基于嵌入式Linux的智能重型拖拉机远程监控系统。将监控系统作为一个控制器局域网络(controller area network,CAN)节点挂载到重型拖拉机整车控制器(vehicle control unit,VCU)的CAN总线网络上,通过Linux对监控系统的CAN模块、全球定位系统(global positioning system,GPS)模块和4G模块进行程序设计,实时接收重型拖拉机VCU的CAN报文并解析出车速等重型拖拉机运行状态参数,获取重型拖拉机位置和速度信息,将所获得的数据发送到服务器。对设计的监控系统进行测试,结果表明:基于嵌入式Linux的智能重型拖拉机监控系统能够准确地获取重型拖拉机运行时的各项数据,上传到服务器并在客户端显示,远程监控系统满足设计要求。

关键词:嵌入式Linux;重型拖拉机;CAN总线;监控系统

0 引言

通信技术的发展推动了农业智能化的蓬勃发展,智能化重型拖拉机不再是传统的纯机械式的拖拉机,它集成了众多电控单元,各个单元相互协作共同完成对重型拖拉机的控制。为实现对重型拖拉机运行状态的监控,实时获取重型拖拉机的运行状态,及时发现异常状态并进行处理,开发一套基于Linux的智能重型拖拉机监控系统非常有必要。文献[1]中基于Fescale 9S12X128芯片研究了电控拖拉机远程监控系统,通过控制器局域网络(controller area network,CAN)总线采集拖拉机的运行数据,通用无线分组业务(general packet radio service,GPRS)网络将数据发送到Internet,但此系统受控制芯片处理能力,局限较大,而且可移植性较差。

本文中采用具有先进处理性能和多内核处理器的IMAX6Q芯片,该芯片可搭载嵌入式Linux系统,嵌入式Linux系统具有开源、多体系、多驱动的优点,并且具有定制化功能,使设计的监控系统具有高效、稳定以及处理能力强大的优点,系统结合GPRS和全球定位系统(global positioning system,GPS)模块使用,能够实时高效地监控智能重型拖拉机的运行状态。

1 系统总体方案

1 远程监控系统总体设计图

基于嵌入式Linux的智能重型拖拉机远程监控系统总体方案如图1所示。由图1可知:重型拖拉机的整车控制器(vehicle control unit,VCU)通过CAN总线与监控系统相连接,监控系统接收来自VCU的CAN报文并根据文献[2]协议对接收到的CAN报文进行解析[3-5],获取当前拖拉机运行的状态信息;监控系统的GPS模块接收到来自卫星的信息,由监控系统选取所需的数据进行提取,获取当前拖拉机的位置信息;然后监控系统将采集到的重型拖拉机的运行数据通过传输控制协议/网际协议(transmission control protocol/Internet protocol,TCP/IP)进行打包处理[6-7],并通过4G模块将打包好的数据发送到移动基站,转发至Internet,上传到云服务器,在云服务器将数据包进行解析,后台监控端访问服务器获取数据,从而实现对重型拖拉机行驶状态的远程监控。

2 程序设计及测试

2.1 CAN模块设计

CAN模块的使用在整个智能重型拖拉机远程监控系统中至关重要,因此重点对CAN模块进行程序设计。本文中智能重型拖拉机远程监控系统开发时,由于所用的Ubuntu系统缺少使用CAN模块所必须的库文件,因此首先应设计CAN模块的库文件并挂载到Ubuntu系统,将设计的库文件设置为普通用户级读写权限,将库文件生成链接文件,确保程序能够正常运行。CAN模块的程序设计及数据收发过程的流程如图2所示。

2 CAN模块收发数据流程图

设计CAN模块程序时,应将CAN模块禁止,将波特率设置为500 kbits/s。Linux系统中,CAN设备被当作网络设备进行管理,所以需要设计专用于CAN通信的套接字来实现CAN通信,分配CAN设备,设计CAN模块的连接程序,进入接收或发送数据状态[8]。CAN模块接收数据程序时,首先在can_filter结构体中定义接收 CAN节点的报文ID和掩码(MASK),设计该结构体,并进入接收状态,read函数读取can_frame结构体中的报文信息。

将监控系统的CAN_H和CAN_L用双绞线连接到智能重型拖拉机VCU的CAN_H和CAN_L上完成硬件连接[9],通过CAN总线获取重型拖拉机的车速、发动机转速、动力输出轴(power take off,PTO)转速、差动锁状态、行驶里程、剩余油量等信息[10]

2.2 GPS模块程序设计

2.2.1 串口初始化

由于IMAX6Q开发板中外扩了GPS模块,利用GPS模块可以实现全球范围内的定位,满足实时监测智能重型拖拉机位置的需求。Linux内核中安装了相应的驱动,GPS模块对应的文件名为/dev/ttymxc,GPS模块通过串口进行数据传输,程序设计流程如图3所示。

3 GPS串口程序设计流程图

Linux系统中设备是以文件的方式进行读写,因此首先在程序中设置串口的文件句柄用于打开文件”/dev/ttymxc”,将串口设为阻塞状态,并检测是否为终端设备,获取串口对应终端的相关参数并在程序中将其初始化,然后设置串口的波特率、初始位、停止位、奇偶校验位和处理未接收的字符。串口初始化函数是串口初始化的通用函数,其它需要使用的模块可直接移植调用。

2.2.2 数据解析

由于GPS的数据$GPRMC为结构体格式,因此首先定义一个结构体data[ ],用于存放GPS数据,然后定义buffer[ ]数组作为缓冲数组存放从串口中读到的数据[11]。读取数据时,从文件句柄 fd 中读取一个字符存放在buffer[ ]数组中,并将该数据连接至dest[ ]的尾部。GPS数据解析流程如图4所示。

对该组数据进行解析的软件流程如图5所示。首先定义一个标志位变量 SectionID,用于标识数据组的不同信息,然后通过判断$GPRMC 数据组中的字符串是否是“,”来区分不同的数据信息。每当检测到一个“,”,则 SectionID加1,通过 switch 语句根据 SectionID判别该字符属于哪个数据,并根据不同的数据(如时间、经纬度等)进行相应的计算,将信息存储到 data[ ]数组里,便于打印或传输。

4 GPS数据解析流程图 5 GPS_$GPRMC组数据提取流程图

2.3 4G通信模块

2.3.1 USB驱动架构

6 USB驱动架构

设计时选用EC20模块用于4G通信,由于IMAX6Q开发板中没有EC20模块的驱动程序,导致无法识别该设备,因此需要向 Linux 内核源码中添加EC20模块驱动程序,再编译生成Ubuntu系统文件后烧录到开发板,才能使用EC20模块与服务器进行数据传输[12]。EC20模块驱动程序设计完成后,在Ubuntu下作为通用串行总线(universal serial bus,USB)设备使用。USB是分级的总线结构,通过USB模块实现USB设备与主机之间的数据传输。USB驱动程序的体系结构如图6所示。

Linux USB主机驱动程序包括USB主机控制器驱动程序、USB 内核和 USB 设备驱动程序3部分。USB主机控制器驱动程序是架构的底层,直接与硬件交互;USB内核是整个USB主机驱动程序的核心,负责管理USB总线、USB总线设备和USB总线带宽,为USB设备驱动程序提供接口,应用程序可以通过接口访问USB系统文件;USB设备驱动程序与应用程序交互,主要提供访问特定USB设备的接口。

2.3.2 Linux内核源码修改

将EC20模块连接到USB串口即设置成USB串口设备,并将EC20模块的厂商识别码和产品识别码添加到设计程序中,Ubuntu系统会自动识别该设备,但应在相关文件中删除和EC20冲突的USB驱动的代码。设计修改内核源码时,添加回调代码,用来恢复由于Linux系统进入挂起或休眠模式时部分USB主机控制器或USB集线器的断电或复位。完成上述设计后进入内核目录下,修改环境变量ARCH为arm、交叉编译器为arm-none-linux-gnueabi,输入相关命令使能USB驱动,完成后输入加载驱动的命令并重启Ubuntu。

2.3.3 Ubuntu系统文件编译

Ubuntu系统包括引导文件、内核文件、文件系统3个文件。因此,设计完成 EC20 的内核驱动后,应交叉编译生成上述3个文件。在源码文件夹下的引导文件目录中,编译脚本build_uboot.sh,编译该文件即可在该文件夹下生成uboot.bin文件,即引导文件。在内核文件目录中,编译脚本文件build_qt_kernel.sh,生成uImage文件即内核镜像。将Ubuntu系统压缩包上传至虚拟机并进行解压,可以在解压后的文件中进行修改,实现相应的功能。源码修改完成后,再压缩生成.tar.gz文件,即为 Ubuntu 的文件系统。

2.3.4 Ubuntu系统烧录

将引导文件、内核文件和文件系统使用飞思卡尔烧写工具Mfgtools烧录至开发板,并根据开发板的型号进行相应的屏幕参数设置。烧录成功的Ubuntu系统,使用ls /dev/ttyUSB*命令可以看到系统中已存在ttyUSB 0~4共5个文件。其中,ttyUSB1用于GPS信息的输出接口,ttyUSB2用于终端设备与PC应用之间的连接与通信指令(attention,AT)的输入接口,ttyUSB3既可以用于AT指令的输入接口,也可以作为点到点协议连接的接口。

2.3.5 EC20 数据传输软件设计

EC20模块的驱动设计安装完成后,对其进行数据传输的软件设计。EC20模块的初始化程序设计流程为:首先给模块上电,通过“AT + CPIN?”指令查询SIM卡的状态,如果返回“READY! OK”,则进行下一步,否则重新启动该模块。继续使用“AT + CREG?” “AT + CGREG?”指令查询相关初始状态值;在查询状态为全部正常后,使用“AT + QIAT=<contextID>”指令激活相应的报文ID;使用“AT+QIACT?”可以查询到本机IP;然后使用“AT + QIOPEN”指令进行服务器的连接,在参数<access mode>中可以设置数据传输方式[13-14]

2.4 监控系统设计

7 系统总体程序流程图

远程监控系统所需要的各个模块的程序设计完成后,需要在Linux开发环境下对系统总体程序进行开发设计,程序设计流程如图7所示。首先要Linux开发环境下分别对CAN设备、GPS串口、EC20模块进行初始化,然后向Linux系统内核注册中断,最后对程序的主函数进行设计,主函数设计包括将GPS数据采用轮询方式采集,CAN总线数据采用中断方式采集,并且设置每隔一段时间对采集的GPS和CAN总线信息进行数据处理和打包,通过4G模块发送至远程服务器端[15-16]

2.5 系统测试

将开发板作为CAN总线的一个节点,挂载在重型拖拉机的CAN总线网络,然后将开发板设置为可以接收所有的报文信息。来自重型拖拉机VCU的报文经开发板传送到监控端,开发板与车载端连接,在 PC 机上登录监控后台界面,通过访问远程服务器,实现车载端与PC端的连接,客户端工作界面如图8所示。部分监控系统端采集到的报文信息及其解析如表1所示,其中报文信息为车速、整车状态(“1”为运行状态,“0”为停止状态)、纬度、经度信息,经解析后转化为重型拖拉机的车速、发动机转速、PTO转速、差动锁状态、行驶里程、剩余油量、地理位置等信息。

8 PC端客户端工作界面

1 部分报文数据解析表

由图8和表1可知,来自监控系统端的CAN报文能够通过开发板传送至服务器端,再通过服务器传到后台客户端。重型拖拉机的车速、发动机转速、PTO转速、差动锁状态、行驶里程、剩余油量、地理位置等数据均可以在监控界面实时显示,达到设计要求。

3 结论

基于嵌入式Linux操作系统研究开发了智能重型拖拉机远程监控系统,包括CAN模块、GPS模块、4G通信模块及控制软件,并对开发的监控系统进行了测试。

1)设计了智能重型拖拉机远程监控系统的总体方案。

2)在Linux开发环境下设计CAN通信模块程序,通过CAN总线将监控系统挂载到重型拖拉机的控制器上,实现数据采集。通过Linux系统自带GPS驱动,将GPS模块作为USB设备在Linux系统中进行程序设计并获取位置信息,针对4G通信模块,修改了Linux内核驱动及相关文件,对修改后的 Linux 内核进行编译,4G模块程序设计完成后能够将数据上传到服务器端。

3)对开发的基于嵌入式Linux的智能重型拖拉机远程监控系统进行试验测试,远程监控端能够接收到来自重型拖拉机的车速、发动机转速、PTO转速、差动锁状态、行驶里程、剩余油量、地理位置等数据,满足设计要求。

参考文献:

[1]陈霞,黄志付,姚云委.嵌入式Linux远程监控系统的设计与开发[J].科技风,2020(12):121.

[2]Society of Automotive Engineers.Serial control and communications heavy duty vehicle network:SAE J1939[S].[S.l.]:SAE International,2005.

[3]沈翔.基于硬件TCP/IP协议的物联网网关设计[J].物联网技术,2019,9(10):35-37.

[4]吕焦盛.基于TCP/IP协议的网络通信服务器设计与实现[J].赤峰学院学报(自然科学版),2019,35(9):50-52.

[5]董小辉,胡锦波,黄浩,等.基于SAE J1939的商用车智能车载终端系统设计[J].计算机测量与控制,2019,27(7):209-213.

[6]付衍法,崔冬梅,马乾.基于SAE J1939协议的发动机离线诊断软件开发[J].建筑机械化,2019,40(4):57-59.

[7]张建舟.电动拖拉机远程监控系统的研究[D].镇江:江苏大学,2017.

[8]王培金,李军伟,孙辉安,等.基于S12XDP512双核微处理器的拖拉机整机控制器CAN节点开发[J].中国农机化学报,2018,39(4):63-67.

[9]崔晓琳,周静,王健,等.双轮驱动电动汽车CAN总线通信协议[J].农业装备与车辆工程,2010(2):17-20.

[10]曹学自,李军伟,王培金,等.精密播种机终端及监控系统设计[J].现代电子技术,2019,42(20):17-20.

[11]贾海云,余庚.GPS传感器中数据解析电路的设计[J].长春师范大学学报,2018,37(6):96-100.

[12]柯建兴,薛曼玉,田召宝.基于MKL16Z128VFM4和EC20的4G通信系统设计[J].通信电源技术,2019,36(9):1-4.

[13]丁若婷,孙越,汪毅雄,等.基于4G移动通信的实时车辆监控管理系统[J].信息通信技术,2015,9(5):27-325.

[14]邹龙,王德志,刘忠诚,等.Linux系统下4G终端模块驱动的实现[J].电脑知识与技术,2015,11(27):206-209.

[15]胡宁.基于嵌入式Linux的T-BOX车联网应用软件的设计与开发[D].西安:长安大学,2018.

[16]李晃.基于ARM的电动汽车远程监控系统设计与研究[D].武汉:武汉理工大学,2015.


课程
财会类
税务类
金融类
经管类
认证类
学历类
建工类
健康类
专家
政府专家
财税名家
高校教授
文化传媒
金融科技
金融电子化
企业管理
财政金融
生物医药
诺贝尔奖得主
合规法律
科学技术
银行智库
财会
中国注册会计师
AIA
会计实务
会计实操
财务经理人
初级会计师
税务实务
中级会计师
中国会计智库
CFO成长营
会计学苑
建工
二级造价工程师
建筑工程资讯
二级建造师
一级造价工程师
监理工程师
消防设施操作员
产教融合
建工学苑
一级建造师
安全工程师
消防工程师
造价工程事务所
BIM工程师
经管
转创人力
中级经济师
二级人力资源管理师
三级人力资源师
人力资源管理师
碳排放管理师
期刊中心
教材参考
军队文职人员
产教融合
劳动关系协调员
初、中级经济考试
企业合规师
初级经济师
企业人力资源管理师
职业指导师
教育
专升本
成人高等教育
自考中国
自学考试研究所
普通专升本
小自考中心
高等继续教育学院
教师资格中心
智库与社会服务
高等职业本科
金融
证券从业
基金从业
金融智库
银行从业
转创博学
ICCM
项目
高管培训
国际学历
财经证书
专项课程
企业内训
教育技术产品
高校学科建设服务
教学资源开发
国际合作服务
产业服务
国内院校
海外院校
海外留学
合作院校
观点
政治经济
IT&财务融合
高校教授
文化传媒
金融科技
金融电子化
企业管理
财政金融
生物医药
诺贝尔奖
合规法律
科学技术
银行智库
商业产经
医卫
医卫健康
主管药师
保育员
药卫学苑
心理咨询师
家庭照护员
养老护理员
健康管理师
公共营养师
执业药师
育婴师(员)
主管护师
护士执业
医院招聘
IT
网络安全管理师
系统集成项目管理工程师
金融科技师
网络工程师
计算机学苑
计算机应用水平考试
电子商务平台
计算机技术与软件专业技术资格(水平)考试
信息系统项目管理师
信息系统监理师
信息处理技术员
考研
考研资讯
信息中心
专业硕士
考研公共课
同等学力申硕中心
复试调剂
研究生工作
考研中国
硕士入学考试
考研直播动态
社工
社会工作者
技能中国
智库与社会服务
初级社会工作者
中级社会工作者
报考动态
社会工作事务所
职称评审
家庭教育指导师
转创网校APP
18318889481
在线QQ
在线留言
返回首页
返回顶部
留言板
发送