一种车联网智能终端系统设计
2021-10-10刘豪睿
杨 娟,刘豪睿
(1.德州学院 经济与管理学院,山东 德州 253023;2.德州学院 计算机与信息学院,山东 德州 253023)
0 引 言
车联网作为物联网的一个分支,其目的是提供移动终端的数据给数据分析系统,为供应链服务商、车企、保险公司和4S店等提供数据源[1]。车联网智能终端系统主要由OBD数据硬件和服务器程序部署组成[2]。该硬件平台主要由OBD模拟器、OBD诊断系统(开发板)和4G串口传输模块组成。该平台可以由现有通用开发模块组成。通用开发模块的优点是模块性能单一,有助于开发者对其功能的理解,其缺点是体积较大,便携性较差。该平台也可由集成电路板构成,即将4G通信模块集成于开发板上,其优点是体积较小,便携性较好[3-6]。本文使用通用开发模块进行设计,服务器程序由Windows Service程序、SQL Server数据库和ASP.NET程序3部分组成,测试环境为腾讯云服务器+SQL Server Express 2017。
1 系统总体框架设计
图1为本设计的系统总体框架图。该系统由主控板、串口GPRS模块、服务器程序和OBD协议分析组成。系统中由OBD模拟器(或实车电脑)发送数据给主控板,主控板将CAN协议数据整理为485数据,经过串口GPRS模块发送TCP数据。服务器中的Windows Service 程序负责接收来自开发板的TCP数据,并存储于SQL Server 数据库中。SQL Server 数据是数据库文件和表格,存储来自开发板的实时数据和记录历史数据。ASP.NET程序是Web程序,部署于IIS服务器中,作为显示网站。
图1 系统总体框架图
2 方案平台主控板开发说明
STM32F103ZET6拥有的资源包括:64 KB SRAM、512 KB FLASH、2个基本定时器、4个通用定时器、2个高级定时器、2个DMA控制器(共12个通道)、3个SPI、2个I2C、5个串口、1个USB、1个CAN、3个12位ADC、1个12位DAC、1个SDIO接口、1个FSMC接口以及112个通用I/O口。图2为开发板资源图。原理图设计时把STM32F103ZETT6芯片分成两个部分:一个部分是通用引脚(GPIO),见图2;还有一部分是电源引脚属于电源模块部分[7-8]。
图2 开发板资源图
为连接更多的外部模块,STM32F103芯片部分引脚是有双重功能的,部分双重功能使用跳线帽选择实现,这特点在编写程序需要注意,特别是把SWD接口功能引脚做为模块功能引脚时需要注意关闭芯片的JTAG和SWD功能。
STM32F103集成多个通信接口,包括5个UART、CAN通信等。开发板充分利用STM32F103性能,集成了多种形式的通信方法,包括RS 232串口通信、RS 485通信、CAN通信、红外接收解码、WiFi通信、2.4G无线通信、蓝牙通信等,并扩展了GSM(电话短信)模块和GPS模块。RS 232和RS 485在设备应用中非常普遍,开发板提供1路RS 232(DB9连接器)和1路RS 485接口。
3 RS 485串口GPRS模块实验说明
串口GPRS模块共有4种工作模式:网络透传模式、HTTPD模式、短信透传模式和UDC模式。串口模块原理图如图3所示。网络透传模式下,用户的串口设备可以通过本模块发送数据到网络上指定的服务器,示意图如图4所示。模块也可以接收来自服务器的数据,并将信息转发至串口设备[9-12]。
图3 串口GPRS模块
图4 网络透传模式
完成设置后,待模块启动后,等待模块连接到网络后向模块的串口发送数据,模块会把数据发送至的测试服务器121.4.170.27上。从服务器端向模块发送数据,模块接收到数据后,会将数据转发至串口端。
4 开发板定义OBD数据流
在Web显示界面上,乘用车和商用车的数据流分别为ISO15031-5和SAE1939-71.这些协议定义的数据流分别有一百多项和几百项,为了正确显示,需要对数据流进行规定。数据流通常一页显示不到10项数据流,这样不到10项的内容更新间隔只有2 s。OBD诊断协议,按照执行程度以及定义的完整性分成了4类:
第一类:执行程度最高,有完整的物理层到应用层定义,且乘用车不执行这类协议不允许销售,它们是排放协议(Emission-Related)。
第二类:只在大部分商用车和农用机械上使用,执行程度不算高,有完整的物理层到应用层定义,但是应用层并不强制执行,车厂可以根据自己实际情况定义自己的应用层。
第三类:不管乘用车还是商用车都有用这个协议,定义完整物理层到会话层,但是最上层的应用层只定义了一部分,并且定义的这部分还允许车厂选择执行。这就是UDS协议,即 “统一诊断服务协议”。协议名称为ISO14229。
第四类:物理层到会话层,基本按照相关ISO或者SAE定义进行,但是应用层完全车厂自行定义。
5 服务器程序
服务器程序由3部分组成,分别是Windows Service程序、SQL Server数据库和 ASP.NET 程序。Windows Service程序负责接收来自开发板和RS 485串口GPRS模块的TCP数据,并存储于SQL Server数据库中。SQL Server 数据是数据库文件和表格,存储来自开发板和RS 485串口GPRS模块的实时数据和记录历史数据。ASP.NET程序是一个Web程序,部署于IIS服务器中,作为显示网站。
6 OBD模拟器
OBD模拟器是可仿真SAEJ1939商用车协议,包括故障码、数据流、版本信息车架号等。标配程序执行应用层协议SAEJ1939-71。由于很多整车厂并不按照SAE组织的标准应用层协议执行,而是添加了自定义协议。OBD硬件如图5所示。
图5 OBD一览图
图5中:A为OBD母口,是OBD通信接口;B为白色4pin端子,其为SWD烧写端口;C为DC端子,是电源输入端子,可接入24 V和12 V电源适配器;D为电源开关,图中所示为打开状态;E为USB D口,其通过USB配线连接计算机。
本设计的车联网智能终端测试页面如图6所示。经测试,该系统性能稳定,可以通过改变OBD模拟器的状态,实现商用车和乘用车的协议转换。测试网址为http://121.4.170.27/login.aspx,账号及密码为dzu,123456。
图6 网页测试页面
7 结 语
本文设计的车联网智能终端系统以STM32单片机作为核心控制器,OBD模拟器和串口GPRS模块作为数据的输入与输出,并通过Windows Service程序,SQL Server数据库和 ASP.NET 程序组成的服务器程序实现网页页面的处理。经过测试,本系统的硬件部分和软件部分具有良好的协调性,支持多种诊断协议,实时数据传输具有良好实时性和稳定性。