新能源汽车组合开关无线动作测试系统设计

2023-03-06 11:46李继武王付凯郭玉静
微型电脑应用 2023年1期
关键词:洗涤器字节网关

李继武, 王付凯, 郭玉静

(南京城市职业学院, 智能工程学院, 江苏, 南京 211200)

0 引言

新能源汽车组合开关使用CAN总线命令控制汽车的前大灯、前后雾灯、转向信号灯和雨刮开关等设备。一旦组合开关、灯光或雨刮出现故障,对其进行故障诊断分析时要经常使用汽车主机厂生产的专用诊断仪进行设备动作测试。但是这种专用的汽车故障诊断仪比较昂贵,许多职业院校新能源汽车专业缺乏这种专用设备,影响了许多新能源汽车故障诊断分析教学工作[1-2]。

本文基于国内某款纯电动汽车设计了一款软件,利用CAN总线接口卡经网关控制器接入CAN总线舒适网。通过发送CAN总线命令实现了灯光和雨刮等设备的动作测试功能,操作简单,使用方便,可部分替代汽车专用故障诊断仪完成相应设备的动作测试工作。

1 硬件网络结构设计

1.1 确定CAN信号采集位置

实验用车的组合开关有左右之分,左组合开关控制灯光设备,右组合开关控制雨刮洗涤设备。查询实验用车组合开关电路图可知,组合开关控制器的1号引脚(CAN-H信号)、2号引脚(CAN-L信号)分别同网关控制器G19的7、8两个引脚相连,组合开关CAN总线命令由G19-7和G19-8两个引脚发送至网关控制器,因此本实验确定从网关控制器G19-7和G19-8两个引脚收发CAN信号。

1.2 硬件网络结构

新能源汽车的灯光和雨刮通过网关控制器接入车载CAN网络,组合开关通过网关控制器来控制灯光和雨刮设备。本实验设计思路是:笔记本电脑通过WiFi与CAN-WiFi转换器相连,而CAN-WiFi转换器同网关控制器相连,这样笔记本电脑发送的CAN控制命令,经过CAN-WiFi转换器和网关控制器,就可以控制灯光和雨刮完成动作测试。实验硬件网络结构如图1所示。

图1 实验硬件网络结构

1.3 实验设备选型

实验用车为2019年生产的某型纯电动汽车一辆,车况良好,灯光和雨刮等备测设备功能正常;笔记本电脑配置:CPU为酷睿i5-7200U,8 GB内存,256 GB固态硬盘,支持无线网卡,操作系统为Windows 10;CAN-WiFi转换器为某公司生产的GCAN-211型工业级CAN-WiFi转换器,它集成了2路CAN接口、1路以太网接口和1路WiFi接口,数据接收速率为8 000帧/秒,可以方便实现车载CAN总线网络和WiFi网络的互联互通。

2 软件架构设计

2.1 软件功能组成框图

组合开关动作测试系统包含2个模块:灯光控制模块和雨刮控制模块,每个控制模块又包含若干个功能[3],如图2所示。

(a) 灯光控制模块组成

灯光控制模块中,“自动”功能表示根据光照强度传感器所感受到的光照强度情况而自动点亮或熄灭;“位置灯”功能表示点亮前位置灯、后位置灯、后牌照灯及室内小灯;“近光灯”功能表示开启近光灯;“远光灯”功能表示开启远光灯;“左转向灯”功能表示开启左转向灯,仪表左转向指示灯同时开始闪烁;“右转向灯”功能表示开启右转向灯,仪表右转向指示灯同时开始闪烁;“后雾灯”功能表示开启后雾灯。雨刮控制模块中,“点刮模式”功能需要持续上抬控制杆保持刮水动作,松开即停止;“间歇模式”功能表示雨刮间歇刮水,通过时间调节旋钮可控制间歇时间为1 s、3 s、5 s和7 s;“低速模式”功能表示雨刮低速连续刮水;“高速模式”功能表示雨刮高速连续刮水;“洗涤器”功能表示洗涤器喷水,同时雨刮开始工作。

2.2 软件开发流程设计

整个软件架构包含2个模块:灯光控制模块和雨刮控制模块。灯光控制模块主要包含两个功能:一是实时显示当前灯光亮灭状态,其设计流程如图3(a)所示;二是控制各灯光亮灭动作,其设计流程如图3(b)所示。雨刮控制模块主要控制雨刮和洗涤器动作,其设计流程同图3(b)相同,不赘述。

(a) 实时显示灯光状态流程

3 软件关键技术实现

3.1 准备工作

3.1.1 配置CAN-WiFi转换器参数

CAN-WiFi转换器在使用前需要进行参数配置。

(1) 准备工作

首先,下载CANet-Wifi-Config软件;其次,因为转换器在出厂时IP地址已固定设置为192.168.1.10,所以需要修改主机IP地址以确保和转换器IP地址处于同一网段;最后,准备一根约1米长的RJ45接口的网线,将CAN-WiFi转换器和主机连接起来。

(2) 配置CAN参数

CAN-WiFi转换器接收车载CAN网络总线通信波特率设置为125 kbps,以TCPServer模式工作,TCP端口设置为4001,其他CAN总线参数保持出厂设置不变。

(3) 配置WiFi参数

CAN-WiFi转换器设置为AP工作模式,即无线路由器模式,为其他终端提供热点连接服务,其IP地址设置为“192.168.1.11”,子网掩码设置为“255.255.255.0”,连接密码设置为“12345678”,端口号设置为“4001”,其他参数保持出厂设置不变。

3.1.2 启动CAN-WiFi转换器热点

CAN-WiFi转换器参数配置结束后,启动CAN-WiFi热点步骤如下。

(1) 启动实验车辆,进入OK状态,为CAN-WiFi转换器提供12 V直流电源,将转换器的CANH和CANL 两个端子分别接入网关控制器的7、8号引脚。

(2) 单击Windows任务栏右侧系统托盘区的“网络连接情况”图标,打开WLAN窗口,在备选的WiFi热点列表中,将出现名字为“CAN-WiFi”的热点连接,单击该连接,填入正确密码后即可连接到该 WiFi 热点。

3.2 连接CAN-WiFi转换器热点

连接CAN-WiFi转换器热点,首先创建一个TcpClient对象,然后调用该对象的Connect方法即可[4-5]。核心代码是:

TcpClient tcpClient = new TcpClient();

tcpClient.Connect(ip, port);

如果不出现异常,TcpClient对象可用于后续的CAN-WiFi热点网络通信。

3.3 显示灯光状态

从CAN-WiFi热点读取数据,需要用到网络数据流NetworkStream对象,它可以从TcpClient对象获得[6],核心代码是:

NetworkStream networkStream = tcpClient.GetStream();

通过NetworkStream对象异步无阻塞读取网络流数据,需要使用一对方法BeginRead和EndRead。其中,BeginRead方法用于发起网络流数据读取任务,EndRead方法用于结束数据读取任务。调用BeginRead方法时,需要指明数据的存储位置和处理方法。核心代码是:

networkStream.BeginRead(mBuffer, 0, READ_BUFFER_SIZE, DoRead, null);

上述代码中,mBuffer是一个字节数组,用于存储读取的数据;0表示mBuffer存储数据的起始位置; READ_BUFFER_SIZE是自定义的一个常量,本实验为1000,表示要从CAN网络读取的字节数;DoRead是一个AsyncCallback委托方法,CAN网络数据读取结束后由该方法进行数据处理;null表示该参数为空。

DoRead方法是一个重要的自定义方法,读取的数据在该方法中得到处理。具体来说,要做三件事。

(1) 结束网络流数据读取任务

结束网络流数据读取任务,需要调用EndRead方法,核心代码是:

lock (tcpClient.GetStream()){

bytesRead = tcpClient.GetStream().EndRead(ar);

}

上述代码中,lock关键字可以确保代码块运行时不会被其他线程中断;bytesRead是一个int变量,表示从网络流实际读取的字节数;ar表示一个异步调用的IAsyncResult对象,本实验未使用。

(2) 从读取的网络数据中提取CAN总线灯光控制数据

对于CAN-WiFi转换器来说,每一个以太网数据帧由13个字节组成,其中第1个字节值固定为0x08,表示以太网帧中封装了8个字节的CAN数据帧;第2~5个字节存储CAN数据帧ID,这个ID表明了这个数据帧的优先级[7-10];第6~13个字节存储CAN数据帧内容。以本实验灯光控制为例,因为组合开关CAN总线控制ID为0x133,所以每一个以太网帧的前5个字节应为08 00 00 01 33,以这5个字节为开头标志,在mBuffer中寻找其后续的8个字节,这8个字节就是组合开关控制字节,其中头一个字节就是灯光控制字节。核心代码如下:

for (inti= 0;i< bytesRead;i++){

if (mBuffer[i] == 0x08 && mBuffer[i+ 1] == 0x00 && mBuffer[i+ 2] == 0x00 &&

mBuffer[i+ 3] == 0x01 && mBuffer[i+ 4] == 0x33){

lightByte = mBuffer[i+ 5];

break;

}

}

上述代码中,lightByte就是要提取的灯光控制字节数据。

(3) 从灯光控制字节提取各种灯光状态

获得灯光控制字节后,提取每一位的状态(1或0),可指导不同灯的状态(亮或灭),核心代码如下:

lightByte_7 = (byte)(lightByte & 0x80); //后雾灯

lightByte_6 = (byte)(lightByte & 0x80); //前雾灯

lightByte_5 = (byte)(lightByte & 0x20); //右转向灯

lightByte_4 = (byte)(lightByte & 0x10); //左转向灯

lightByte_3 = (byte)(lightByte & 0x08); //远光灯

lightByte_2 = (byte)(lightByte & 0x04); //近光灯

lightByte_1 = (byte)(lightByte & 0x02); //小灯

3.4 控制灯光亮灭

从CAN-WiFi转换器接收的以太网数据帧ethernetFrame字节数组中,第6个字节是灯光控制字节,控制协议如表1所示。

表1 左组合开关(灯光)控制协议

要点亮某个灯,只需要将ethernetFrame字节数组中第6个字节的对应位设置为1,然后将ethernetFrame字节数组写入网络数据流,即可通过CAN-WiFi转换器传入汽车CAN网络,点亮某灯光。以点亮近光灯为例,核心代码如下:

ethernetFrame[5]=ethernetFrame[5] | 0x04; //近光灯位置1

tcpClient.GetStream().Write(ethernetFrame, 0, 13);

上述Write方法参数中,0表示从ethernetFrame数组第0位开始写入,13表示要写入的字节数。如果要熄灭近光灯,将0x04调整为0x00即可。

3.5 控制雨刮/洗涤器动作

从CAN-WiFi转换器接收的以太网数据帧ethernetFrame字节数组中,第7个字节是雨刮/洗涤器控制字节,控制协议如表2所示[11]。

表2 右组合开关(雨刮/洗涤器)控制协议

要控制雨刮/洗涤器完成某个动作,只需要将ethernetFrame字节数组中第7个字节设置为对应十六进制数,然后将该ethernetFrame字节数组写入网络数据流,即可通过CAN-WiFi转换器传入汽车CAN网络,雨刮/洗涤器将开始执行相应动作。以洗涤器喷水为例,核心代码如下:

ethernetFrame[7]=0x21;

tcpClient.GetStream().Write(ethernetFrame, 0, 13);

上述代码运行后,洗涤器将执行喷水动作。

4 程序运行测试

4.1 准备工作

将CAN-WiFi转换器1通道CANH和CANL引脚与车辆网关控制器(G19)7、8引脚连接,将CAN-WiFi转换器电源和地线引脚与车辆网关控制器(G19)16、11引脚连接。启动实验车辆,上OK电。

4.2 测试灯光实验

启动组合开关实验程序,单击“文件->连接CAN-WiFi”菜单项,连接至CAN-WiFi热点。通过单击“自动”“位置灯”“近光灯”“远光灯”“左转向灯”“右转向灯”和“后雾灯”等按钮,可以点亮相应灯光,短暂保持后自动熄灭。以单击“远光灯”按钮为例,程序运行界面如图4所示。

图4 灯光实验程序运行界面

4.3 测试雨刮/洗涤器实验

启动组合开关实验程序,单击“文件->连接CAN-WiFi”菜单项,连接至CAN-WiFi热点。切换至“雨刮”选项卡,单击“点刮模式”“间歇7 s”“间歇5 s”“间歇3 s”“间歇1 s”“低速模式”和“高速模式”按钮,雨刮将按指定模式工作;单击“洗涤器”按钮,洗涤器将喷水。程序运行界面如图5所示。

图5 雨刮/洗涤器程序运行界面

5 总结

(1) 本系统硬件网络搭建方便,设备成本低廉,网络信号传输速度快;由于CAN网络接口卡集成了电气隔离模块,隔离模块绝缘电压为直流1 500 V,增强了系统在恶劣环境中的安全可靠性,即使出现瞬间过流或过压也不会造成设备损坏;软件架构设计合理,关键技术先进,功能完善实用。

(2) 系统实测表明,灯光、雨刮/洗涤器设备动作测试灵敏可靠,响应及时,软件界面简洁实用,操作简单方便,故障诊断分析时用于动作测试可以取得良好效果。

(3) 系统的硬件/软件设计思路完全可以用于拓展开发新能源汽车其他设备动作测试功能或故障诊断分析功能,另外通过将CAN信号转换成4G(或5G)信号,也可以将设备动作测试软件从PC端迁移到手机端,具体思路是:首先,通过CAN-4G(或CAN-5G)转换器将CAN网络信号转换成4G(或5G)信号,然后发送给一台远程云服务器;其次,远程云服务器将接收到的4G(或5G)信号以Web服务形式向外界提供CAN网络访问接口;最后开发一款手机程序访问Web服务即可实现汽车有关设备动作测试功能,这也是本文的后续研究方向。

猜你喜欢
洗涤器字节网关
No.8 字节跳动将推出独立出口电商APP
关于水煤浆气化炉文丘里洗涤器结构及流程优化小结
No.10 “字节跳动手机”要来了?
废气洗涤器市场六大特征有何深意
简谈MC7字节码
LTE Small Cell网关及虚拟网关技术研究
高压洗涤器防爆筒破裂事故分析及建议
应对气候变化需要打通“网关”
C O2汽提尿素装置高压洗涤器的运行及维护
一种实时高效的伺服控制网关设计