基于LTE/WLAN的车辆电池实时监测系统①

2019-07-26 03:16赵智佩余震虹
计算机系统应用 2019年5期
关键词:内核客户端驱动

赵智佩,余震虹

(江南大学 物联网工程学院,无锡 214122)

当前,为了降低汽车污染物的排放,人们逐渐使用电动汽车作为交通工具.考虑到车辆电池在工作时的安全,需要一个系统对其工作状态进行实时监测,以便于后续工作的开展.此前,国内外在电池信息监测系统上大量运用了GPRS 和3G网络技术,部分运用了4G网络技术都能达到较好的效果.

但为了提高整体的通信质量和提供多种监测方式,系统采用4G网络技术和WLAN网络技术.4G网络通信作为当下流行的通信技术,它有较高的通信速度,提高了通信的灵活性以及智能性;有更宽的网络频谱,兼容性能平滑度大大提高,并改善了使用效率,多媒体通信质量得到了优化.同时结合了WiFi 无线通信建立局域网通信,极大的丰富了监测终端的网络应用与近程数据传输.无线局域网技术的优势很多:具有传输速度快的优势;对人体健康危害较小等.WiFi的应用范围正在逐渐扩大,WiFi 技术仍是将来网络技术的主要发展趋势,随着科技的不断发展与进步,它也会得到不断的完善与优化.

目前,该系统可以实时观察电池的电压与工作温度,并且根据4G 和WiFi 组网可以实现近,远程实时准确提供电池的电压与环境温度数据,确保电池运行的安全与稳定.满足监测系统的组网灵活,安全可靠,便于观察的需求.

1 监测系统的整体设计

检测系统的组成涉及了数据采集客户端和服务器两部分,首先数据采集客户端是以S3C2440处理器为核心,并包括内部自带A/D 转换器,温度传感器,4G 通信模块和WiFi 通信模块等;服务器由两部分组成,一是数据采集客户端由4G 通信模块通过Internet 向远程服务器发送采集的数据,二是由WiFi 通信模块向周边用户的移动设备发送数据.另外检测系统同时可以组成4G-WiFi网络向用户提供流量数据服务.监测系统的示意图如图1.

图1 监测系统的整体示意图

2 系统客户终端硬件平台的设计

整个系统的硬件部分包括:ARM9 嵌入式开发板,4G 通信模块,WiFi 通信模块和温度传感器DS18B20模块.硬件连接如图2所示.

2.1 ARM9 主控处理器

主控芯片采用的是三星公司的一款基于ARM9 内核1 6/3 2 位精简指令集(R I S C)3 2 位微处理器S3C2440A 芯片,主要负责数据的采集与数据的转发等功能,是整个系统结构的核心.具体采用的是友善之臂MINI2440-FriendlyARM 核心板,该核心基于Linux2.6.32.2 内核,采用沉金工艺的4 层板设计,专业等长布线,保证关键信号线的信号的完整性,并采用专业稳定的CPU 内核电源芯片和复位芯片来保证系统运行时的稳定性.其主频400 MHz,最高533 MHz,在板64MSDRAM,32 bit 数据总线,256 M/1 GB Nand Flash 和2MNor Flash.接口和资源:1个34pin GPIO 接口,1个USB Host 和1个100 M 以太网RJ-45 接口(采用DM9000网络芯片)等.如图3所示.

图2 整体硬件结构图

图3 MINI2440 开发板

ARM9 S3C2440 芯片自带一个8 路10 位A/D 转换器,它的最大转换率为500 kHz,非线性度为正负1.5 位,其转换时间[1]:当系统时钟为50 MHz,比例(预分频器)值为49,则:

A/D 转换器的供电电压为3.3 V,模拟输入电压范围为0~5 V,满量程为5 V/1024,最小有效位(LSB)为4.88 mV,最小有效位(LSB)与模拟输入电压有关.

2.2 4G 通信模块

系统采用的4G模块是上海移远EC20 LTE模块,采用LTE 3 GPP Rel.9 技术,虽然在功能上与目前最新Rel.14 版有一定的差异,但并不影响正常使用.此模块支持最大下行速率100 Mbps 和最大上行速率50 Mbps.EC20 LTE模块采用Mini PCIe 封装通过通信模块转接板(Mini PCI-E 接口卡)与主控板进行USB 连接通信,Mini PCI-E 接口定义为USB 信号及3.6 V 电压,USB 接口5 V 电压通过DC to DC 电压源芯片转换成3.6 V 电压和2 A 电流供给模块及UIM/SIM 卡工作.EC20 LTE模块支持频段FDD-LTE:B1/B3 和TDD-LTE:B38/B39/B40/B41;支持Mini PCIe 接口:采用PCI Express Mini Card 1.2 标准接口;支持LTE 特性:符合3 GPP R9 CAT3 FDD 和TDD,支持1.4-20 MHz 射频带宽,FDD:Max 100 MHz (DL)50 MHz(UL),TDD:Max 61 MHz (DL)18 MHz (UL);支持的网络协议为:支持TCP/UDP/PPP/QMI/HTTP 等协议,支持PAP 和CHAP 协议,支持标准AT 指令集及扩展AT 指令集.其中,Mini PCI-E 转USB 电路原理图如图4.

图4 Mini PCI-E 转USB 电路原理图

2.3 WiFi 通信模块

系统采用的无线通信模块RT3070 是高度集成的MAC/BBP 和2.4 G RF 单芯片,芯片支持150 Mbps 至300 Mbps的吞吐量.它完全符合IEEE802.11n draft 4.0 和IEEE802.11 b/g 标准,在较远的高吞吐量下提供可靠,成本效益高,功能丰富的无线连接.由优化的RF 结构和基带算法提供了卓越的性能和低功耗.智能的MAC 设计采用了高效的USB 引擎和硬件数据处理加速器,从而不使主机处理器过载.符合本系统的需求.

2.4 DS18B20 温度传感器模块

DS18B20 是美国Dallas 公司生产的单总线数字温度传感器,它具有微型化,低功耗,高性能,抗干扰能力强,易配微处理器等优点,可直接将温度转化为数字信号处理器处理.测量温度范围是-55°C~125°C,测温误差为±0.5°C.可编程的分辨率为9~12 位,可实现高精度测量.具有负压特性:电源极性接反时,芯片不会因发热烧毁.由电源线,信号线和地线三个引脚组成的三极管集成电路.DS18B20的应用电路有:寄生电源供电方式,寄生电源强上拉供电方式和外部电源供电方式[2].该系统采用外部电源供电方式,DS18B20的工作电压范围3.0V~5.5V,信号引脚的上拉电阻范围4.7 KΩ~10 KΩ.其中应用原理图如图5.

图5 DS18B20 外部电源供电电路图

2.5 USB 通信接口及USB 集线器模块

系统所采用的S3C2440 芯片内部含有USB 主机接口和USB 设备接口,系统主要应用的是USB 设备接口,它采用DMA 接口方案,允许控制传输,中断传输和DMA 接口的批量传输,具有5个带FIFO的端点,支持USB2.0 协议,高速的理论速度为480 Mbps 和全速的理论速度为12 Mbps,包括支持热拔插,标准统一和多设备连接等优点.其应用电路图如图6所示.

图6 USB Host 硬件电路图

系统USB 集线器模块采用FE2.1 集线器控制芯片,它是集成性比较高,品质高,性能高,能耗低的高速七端USB2.0 集线器,系统应用其中三个端.FE2.1模块电路原理图如图7所示.

图7 FE2.1模块电路原理图

3 系统的软件设计

整个系统的软件设计在友善之臂Linux-2.6.32.2-mini2440-20150709 内核的基础上所开发设计的,主要包括Linux 操作系统的移植[3],4G-LTE模块的驱动移植和RT3070 无线模块的驱动移植以及所依赖的文件移植.通信模块中的4G模块和WiFi模块都是通过USB 接口建立的驱动模块,在移植通信模块前先要编译Linux 内核然后移植驱动.要实现4G-WiFi 路由则需要移植iptables,它可以完成封包过滤,封包重定向和网络地址数据包转换(NAT)等功能.关于iptables的具体移植方法,可以从网络上了解.

3.1 4G 通信模块的移植

(1)支持4G模块的内核编译

进入内核的目录并对内核进行裁剪,执行make menuconfig 进行界面选择Multi-purpose USB Networking Framework 将Linux 内核的rndis_host 配置为动态模块,可以在Linux 下使用USB网络.选择USB driver for GSM and CDMA mdems,实现Linux 内核对4G模块驱动的支持.选择所有PPP网络协议选项,可以使Linux 内核支持4G网络拨号,当4G 通信模块移植完成后可以通过PPP 拨号的方式连接网络和互联网.

(2)4G 通信模块驱动移植安装

通过对所提供的Linux 驱动源码和拨号联网程序进行修改编译生成可执行4G模块驱动文件.使用insmod 命令将4G模块加载到内核中,移植成功后可以看出在4G模块在系统中被映射成为的网口和4G网卡IP 地址等信息,可以Ping 公网测试则移植成功[4,5].

3.2 WiFi 通信模块的移植

(1)支持WiFi模块AP模式的内核编译

在Linux 内核选项中选择IEEE 802.11 for Host AP (Prism2/2.5/3 and WEP/TKIP/CCMP)使内核支持WiFi模块的AP 功能.选择RF switch subsystemsupport,此选项为了节约电力,很多无线网卡都有内置的射频开关用于开启和关闭设备.选择Generic IEEE802.11 Networking Stack (mac80211),Generic IEEE 802.11 Networking Stack (mac80211)选项是独立于硬件的通用IEEE 802.11 协议栈模块,可以让系统能更好的控制硬件.

(2)WiFi 通信模块驱动的移植

2010_0203_RT3070_SoftAP_v2.4.0.1_DPA.bz2 驱动下载,此驱动是RT3070 在Linux 操作系统上实现软AP模式的驱动.解压缩文件后,在2010_0203_RT3070_SoftAP_v2.4.0.1_DPA 目录下有三个文件夹分别为MODULE,NETIF,UTIL,在这三个文件中均有Makefile,在所有Makefile中修改其中的支持平台与平台下的内核路径和交叉编译器.编译通过后,在开发板修改rt2870ap.dat 文件让rt3070ap 在启动的时候配置成WPA2的加密方式,并依次执行insmod rtutil3070ap.ko,insmod rt3070ap.ko,insmod rtnet3070ap.ko.则可以系统可以识别无线模块,并被映射成为相应的网口[6,7].

3.3 DS18B20 驱动设计与实现

对于单总线结构的DS18B20的读写控制必须严格按照时序图进行编程,通过嵌入式设备的通用I/O 口GPF0 直接驱动DS18B20的DQ 信号的交流端.通过调用精确的延时子程序,来对其准确时序控制[1].DS18B20的读写时序图如图8 和图9.

图8 DS18B20 写时序

图9 DS18B20 读时序

在Linux 系统中把DS18B20的温度传感器程序通过运行交叉编译器编译成字符设备驱动.使用insmod 命令将温度传感器模块加载到内核中,移植成功后可以在系统/dev中发现温度传感器模块被映射成为DS18B20的驱动设备号.

3.4 通信方式的设计与实现

Socket 接口是支持TCP/IP网络的应用程序编程接口,是支持Linux 系统中通用的网络接口,网络的Socket 数据传输是一种特殊的I/O 接口,Socket 也是一种文件描述.在Socket 通信中有两种通信协议:UDP协议(用户数据报协议,面向无连接)和TCP 协议(传输控制协议,面向连接).UDP 协议和TCP 协议之间的区别如表1所示[8,9].

表1 UDP 协议和TCP 协议之间的区别

TCP 协议提供IP 环境下的数据可靠传输能力,它提供的服务包括数据流传送,可靠性,有效流控,全双工操作和多路复用.它建立连接使用三次握手过程,使一台计算机发出的字节流无差错的发向网络上的其他计算机.在网络比较弱的时候也能保证数据传输的质量,所以该系统选择TCP 协议C/S 结构的Linux Socket网络编程[10].TCP 协议的编程流程图如图10.

图10 TCP 协议的编程流程图

以4G网络为例.TCP 协议的Socket的服务器首先运行,通过调用socket 函数创建一个Socket,然后调用bind 函数将其与本机地址以及一个本地端口号绑定,然后调用listen 函数在该Socket 上监听,等待客户端的连接,接着调用accept 函数来接受连接服务.客户端程序先将接受的数据使用setsockopt 函数绑定到指定4G网络端口,然后调用connect 函数和服务器建立连接,连接成功后客户端和服务器之间调用send 和recv 来发送和接受数据.最后,两边都关闭Socket.其中数据信息前两位为温度数据,中间两个空格,最后五位是电压数据.

3.5 Android 手机端通信

手机端通信采用C/S模式Android 开发结合Socket 完成网络通信.通信系统采用Android 6 版本,以JDK7+Eclipse+SDK 为开发环境,客户进入系统可以获取WiFi 通信系统分配的IP 地址及设置通信端口号[11,12],启动创建可以接受到客户端发来的电池电压与工作温度数据.

4 系统测试

数据采集采用3.3 V 电压供电模拟电池实际5 V电压,来测试电压采集的数据如表2所示,电压最大差约为0.33%,平均误差为0.27%.采集的温度数据与实际温度没有明显的差距.由实验数据可以总结出,该系统采集性能良好,电压与温度数据误差较小,比较好的完成对模拟电池的信息数据的读取.

表2 模拟电池信息采集表

通过制定好的通信协议对测试数据打包,然后经过嵌入式控制系统通过USB 接口传到4G 通信模块,通过4G 通信模块向远程服务器发送数据.如图11,在客户端运行发送数据程序.

如图12,Linux 服务器通过Internet网络接受到客户端发送来数据后采用制定好的协议解析,然后加上系统的日期和时间.

如图13,PC 机服务器通过Internet网络接受到客户端发送来数据后采用制定好的协议解析,然后加上系统的日期和时间.

图11 客户端运行状态

图12 服务器接收状态

图13 PC 机服务器接受状态

手机通信服务端接受数据信息如图14所示,每一条数据都占有客户端不同的端口,并包含了每条数据发来的时间.

图14 手机通信服务端接受效果

通过手机连接4G-WiFi 系统进行测试.通过串口通信在LTE 制式下测试不同环境(第一组:室外,第二组:室内,第三组:地下车库)的丢包率和往返延时.测试结果如表3所示.

表3 LTE 制式下测试结果

5 结束语

本文系统在MINI2440 开发板上运行Linux 操作系统,将当前阶段网络数据速率传播最快的4G 移动通信技术和常用的WiFi 无线通信技术结合起来,实现了可移动强,安全,操作简单等特点,实现了温度与电压数据采集与传输,同时用户可以随时通过WiFi 终端连接上互联网,为客户端解决了网络信号差,网速慢的问题.特别是具有实时性较强,设置简单和实现容易等优点,非常适合实时监测的场景.

猜你喜欢
内核客户端驱动
你的手机安装了多少个客户端
“人民网+客户端”推出数据新闻
——稳就业、惠民生,“数”读十年成绩单
数据驱动世界。你得懂它 精读
基于模糊PI控制的驱动防滑仿真系统分析
强化『高新』内核 打造农业『硅谷』
活化非遗文化 承启设计内核
屈宏斌:未来五年,双轮驱动,砥砺前行
微软发布新Edge浏览器预览版下载换装Chrome内核
深入实施创新驱动发展战略
媒体客户端的发展策略与推广模式