邓健志,程小辉
(1. 桂林理工大学 信息科学与工程学院,广西 桂林541004;2. 桂林理工大学 广西嵌入式技术与智能系统重点实验室,广西 桂林541004)
在车联网中,车-车通信、车-地(设备)通信是相当重要的组网环节。在没有移动电话前,车辆之间常通过灯语来实现简单交流。灯语是应用长短不同的灯光明暗间歇来传递信息的一种简易通信方式。灯语在海上船间的通信应用较为广泛,道路上的汽车驾驶员也常利用车灯的亮灭闪烁向前车及对向来车传递信息。例如:闪一下提示前方车辆让出车道;闪两下提示对向来车关闭远光灯;闪三下提示前车有故障等等。
目前,车联网的组网通信主要还是依赖于4G、WIFI 及蓝牙等无线射频技术[1],尽管5G 的应用能扩展了车联网的通信模式,但我们仍希望充分开发无线通信资源,打造多元化的车联网通信模式。
与此同时,当前车内设备通信主要采取包括CAN,LIN,TTP(Time-Triggered Protocol)在内的串行通信模式。其中,一些实时性不高的系统控制,如:中控门锁、电动车窗、电动座椅与灯光照明等,主要采用数据传输速率为1~104bit/s 的LIN,TTP 协议[2]。这些通信方式都需设置专有的通信线路,且传输速率普遍不高。
可见光通信(Visible Light Communication,VLC)是一种利用灯光进行通信的新一代信息技术,原理跟灯语一样,但速度更快,信号更复杂。如今,VLC 技术已被列入5G 后的下一代技术,作为多样化6G 接入网络的组成部分之一。本文研究采用VLC 实现车-车通信,让采用VLC 的车联网通信成为未来通信的新模式[3-5]。
在汽车内部,车灯、车门窗等设备主要是通过供电线路与开关连接,并不具备通信功能。如若采用现有方法实现车灯的VLC 通信,需要增设通信线路和复杂的通信模块等,需改变车辆内部结构、线路布线等,而这些改变可能会影响车辆的整体安全性,影响车辆的整体设计。因此,本文设计了一个即插即用的可见光车灯信号的发送装置,希望在不改变现有车辆结构和减少通信线路使用的前提下,简单便捷地将VLC 技术移植到汽车上,让车灯成为一个车间通信的信号载体。
本装置包括前级电路、后级电路和储能模块三个部分。 前级电路有微控制单元(Microcontroller Unit,MCU)、稳压模块、输入模块、开关模块等;后级电路有MCU、稳压模块、整形模块、驱动模块等。前级电路与后级电路仅仅通过供电线路相连接,前级到后级的电能供给和信号的传输,都经由两条供电线路完成;后级根据前级的信号控制驱动模块带动负载工作;储能模块在工作时用做临时电源[6]。
系统结构和模块连接原理如图1 所示。系统功能可分为供电和信息传输两个部分[7]。
(1)系统供电原理:前级电路通过外部电源获得+12 V 供电,并由开关模块的控制A、C 两端的供电通断;储能模块在A,C 两端供电接通时储蓄电能,并在A,C 两端供电中断时释放电能,以用作临时电源为后级电路提供电能;后级电路从储能模块C,D 两端获得电能。为保证供电稳定,前、后两级均采用了稳压模块。
图1 系统原理框图Fig. 1 System scheme
(2)系统的信息传输功能,主要是输入模块的输入信息经由前级电路传输至后级电路,工作原理如下:前级MCU(Microcontroller Unit)根据输入模块的输入信息,控制开关模块产生开关动作;开关模块的开关动作导致A,C 两端的接通和断开,从而使得C,D 两端的电平随着开关动作产生变化;C,D 两端的电平变化经过整形模块处理得到脉宽调制PWM(Pulse Width Modulation)信号,后级MCU 将整形模块输出的PWM 信号解调得到由前级MCU 传输的信息,由此实现前、后两级电路的信息传输,并由驱动模块根据传输的信息控制负载[7]。
本设计的负载采用LED,即由驱动模块控制LED 发出可见光信号。输入模块可以是一组按键、开关等,也可以提供手机、平板等外设数据的串行通信接口,用以接收并转发外设的输入信息。例如:将车灯拨杆作为输入模块,将拨杆拨动作为输入信号,装置作为一个即插即用模块,连接在电源与车灯之间,如图2 所示。
图2 系统连接示意图Fig. 2 Connection scheme
根据上述原理,系统发送LED 发出可见光信号的整体信号的传递形式如图3 所示:首先,由输入模块发出指令信号,前级MCU 将该信号指令转换为相应的开关模块的控制信号;由开关模块根据控制信号产生供电通断的引起电压变化的开关信号;储能模块两端的电压变化信号经过整形模块后得到整形后的脉冲方波;后级MCU根据整形模块的脉冲方波输出信号,向驱动模块发出驱动信号,由驱动模块控制LED 发送可见光信号。
储能模块在开关模块的PWM 开合控制引起的供电通断过程中,不断地充放电;由此,在储能模块的两端就会出现电压的波动,这样的波动也会反应在整形模块的输入上,整形模块将电压变化转换成一组脉冲,由此从电压的瞬时跳变中,获取供电通断变化所携带的信号。
图4 整形模块原理Fig. 4 Plastic module
本设计是利用系统的供电线路进行信号的传输,为了保证系统的正常工作,稳定供电是第一位。装置后级的供电是由开关模块的开关动作控制通断,供电线路上的瞬时电压电流并不是固定的,开关电路的开关动作产生了由峰值电压及低电平来回交替形成的脉冲。
而后级电路的供电不是由普通的直流电实现,是通过开关模块的开关动作产生由峰值电压及低电平的来回交替形成的直流脉冲,所以工作时需要考虑脉冲的有效值是否达到供电需求。
通过纯电阻R在电压、电流峰值为Im的正弦交变供电系统中一个周期T内的能耗Q的计算公式[8]:
由于单向脉冲实质是一种脉冲直流电,当接入纯电阻R后一个周期T内耗散的能量等于直流电耗散能量的t/T,其中t为一个周期的高电平时间,根据有效值定义可知:
即,电流有效值为I=t T Im,电压有效值为U=t T Um。 通常MCU 的供电电压一般为3. 3 V 和5 V,因此,以LM7805 稳压芯片提供5 V 稳压供电为例,LM7805 输入工作电压范围为7~36 V,对于脉冲的有效值最低不能低于7 V。当输入峰值12 V 且要求有效值为7 V 时,有7/12=t T,即在一个脉冲周期里,高电平的持续时间不应小于1/3T。
电容、电感都具有充放电特性,因此可利用这一特性,将其当作临时电源使用。 在本设计中,拟采用电容、电感作为储能模块,在电源供电时,集聚电能;当电源供电中断时,释放电能,并用于给后级电路的整形模块、稳压模块、MCU 等提供电能输出。
当前级MCU 给开关模块分别输出1 KHz~5 MHz 的 占 空 比Dk为50% 的PWM 信 号 ,对10 pF~1 μF 范围内的多组电容的压降、充放电时间、频率等进行了测量,部分电容充放电情况测试,如表1。
其中33 pF 电容值的电容充放电如图5 所示。 33 pF 的电容在200 KHz 的开关信号控制下,两端电压占空比为3:2,压降接近12 V;当开关信号提高至4 MHz 时,两端电压占空比Dk为4:1,压降约为8 V。
表1 电容充放电测试数据Tab. 1 Charge-discharge test of capacitor (Unit:V)
图5 33 pF 电容频率测试波形Fig. 5 Test waveform of 33 pF capacitor
电感与电容一样,也可以用作储能元件。然而,通过对470 μH 和1 mH 的电感进行测试发现,电感在充放电频率较高时,电压的变化不明显,且发热量很大。
电感测试数据如表2,47 μH 电感在开关频率为1 KHz,500 KHz,1 MHz 时,压降均达不到0. 5 V,且在短暂的测试过程已经有微热;采用1 mH 电感在开关频率为1 KHz 时,波形较好且压降可以达到4 V,但发热严重。显然,电感不适合用作本设计的储能模块,其波形图如图6。
由于上述推导及电容充放电特性可知,容值越大,充放电越慢;反之则越快。而对于同一电容,开关频率越高,电容的充放电时间越短,电容两端的压降也越小。以33 pF 电容为例,当产生开关信号的PWM 频率达到4 MHz,若用每一个脉冲携带一个bit 信号,既前级向后级传输信号可达到4 MHz 的传输速率。
表2 电感充放电测试数据表Tab. 2 Charge-discharge test of inductor
图6 电感充放电测试Fig. 6 Charge-discharge test of inductor
结合硬件结构,软件设计包括前级MCU 和后级MCU 两个部分的控制程序,前级用于接收并解析输入模块的指令,再根据指令控制开关模块的开合;后级根据整形模块的输出识别出前级的开关控制信号,并据此发出驱动信号。
本设计利用载波的频率变化来传输数字量的信息,采用两个频率表示二进制“0”和“1”的2FSK。FSK(Frequency-Shift Keying)频移键控,是利用载波频率的变换来传输数字信息,FSK 拥有易实现、抗噪声、抗衰减的优点,适合用于远程中低速通信传输。本设计的2FSK 调制采用微控制器实现。
考虑到前级到后级的信息传输可能存在的线路干扰、误动作等问题,设计采用了Modbus 协议的RTU 模式,其数据帧格式如表3。
表3 数据帧结构表Tab. 3 Frame structure
其中,在数据帧加上T1~T4 的起始位和结束位,用大于3. 5 Byte 的时间,代表不同数据帧之间的间隔。如若一帧数据未完成或是有大于T1~T4 间隔没数据,接收设备会准备下一个数据帧的接收;当数据帧接收完成时需通过计算CRC 校验码,判断接收数据帧的正确与否;设备地址为接收设备相应的ID;功能码为数据帧接收设备需执行功能对应的代码或标识码;数据位有n个8 bit 的数据,N的值由功能码确定。
本设计的前级与后级之间按RTU 模式的Modbus 协议进行数据帧的发送:(1)其中前级将来自输入模块的信息打包成数据帧,通过PWM调制输出两个不同的频率分别代表二进制“0”和“1”,并按高位至低位的顺序发送数据帧;(2)后级通过MCU 的定时器输入捕获功能获取保存数据,并按照Modbus 的通信协议校验数据;(3)前级与后级之间的收发时钟同步采用MCU 的多定时器配置实现。
测试采用Modbus 协议[9-10],由前级MCU 采用200 KHz,400 KHz 的两个不同的频率代表“0”,“1”,控制开关模块的快速动作。对比测试发现,在开关频率提高后,储能电容的储能作用的有无对系统的工作并不明显,但电容能滤除部分尖端及一些纹波。
图7 高速开关时储能电容效果Fig. 7 Effect of capacitor in high speed
整形模块作为装置后级的信号转换电路,会产生一定的器件延迟。如图8,示波器CH1 的波形为通信时储能电容两端电压,CH2 的波形为整形模块的输出电压。其中CH1 的储能电容两端波形,即供电线路上的波形。
如图所示,图8(a)当开关频率为200 KHz时,上升沿延迟449 ns,下降沿延迟169. 5 ns;图8(b)当开关频率为400 KHz 时,上升沿延迟449. 8 ns,下降沿延迟120. 1 ns。
图8 200 K 和400 KHz 开关频率时器件延迟Fig. 8 Device delay in 200 K or 400 KHz on-off frequency
测试将PC 作为输入模块,前级MCU 接收PC 串口数据,并打包成数据帧通过开关模块发送;后级接收到数据帧,解包校验后还原成串口数据,再通过串口上传至PC。供电线路上的数据帧传输,采用Modbus 协议。
前级MCU 通过定时器功能控制开关模块的开关动作,后级MCU 通过IO 口的输入捕获功能采集整形模块的信号。 前级MCU 将接收到的PC 串口数据计算得到CRC 校验码,再将数据和CRC 码一并以二进制的形式从高位到低位以200 KHz 和400 KHz 的两个不同频率代表“0”,“1”进行调制后用以控制开关电路的动作;开关电路通断产生的线路电平变化经过整形电路后,送到后级MCU 接收捕获;后级MCU 以定时器脉宽边沿触发中断而获取FSK 的信号频率,再据此解析数据帧得到串口数据,并输出至上位机串口观察。
PC 端发送数据内容如图9,其中58 和07 分别代表CRC 校验后的高位和低位。
图9 发送数据测试Fig. 9 Test of data sending
设计采用定时器中断记录脉冲并计算对应码元,在0. 01 s 定时内,捕获200 K 对应“0”的脉冲为1 995 个附近,捕获400 K 对应“1”的脉冲为3 970 个附近,误差控制在0. 01%~0. 05%,脉冲接收计数测试如图10。
图10 脉冲接收计数测试Fig. 10 Counting test of the receive pulse
为验证本直流线路通信车灯控制装置,设计了一个如图2 的拨杆(用按键代替)LED 车灯控制模型。 用按键作为输入模块发出控制指令,经过本设计的装置,发出可见光控制信号,远程控制地锁的起、落动作(如图11)。LED 车灯控制模型在不改变汽车前照灯的供电照明线路的前提下,实现了由按键发出的指令控制LED 车灯发出可见光信号,控制地锁的动作。 同时,结合作者前期对VLC 的研究,可以达到户外强光下的车- 车间通信的应用要求[11]。
图11 VLC 车灯地锁控制模型Fig. 11 VLC parking lock control module
本文研究并设计实现了一个可见光车灯信号发送控制方法和装置,通过装置的接入和使用,可以在不中断供电的前提下,保持装置后级的持续工作,能够通过装置将外部输入信号加载在低压直流供电线路传输,并根据线路传输信号驱动LED 车灯发送高速可见光信号。本设计已经在12 V 直流供电线路上,实现前后级间采用Modbus 协议的信号传递。
本设计对多个不同规格的电容和电感进行测试研究,可知电容更适合该类型的高速充放电;同时,电容能够一定程度减少线路毛刺的产生。通过电容的测试可知,单向传输速率可以达到MHz 级,已经达到甚至超过IIC 和SPI 总线的速率[12]。
本研究的思路源自“ 灯语”,所设计的装置模型通过车辆LED 前大灯实现信号的发送,本设计还可以用于车联网中的LED 路灯到车辆的下行可见光信号的发送控制,也可以作为一个通用的即插即用模块,用于实现对其他由直流供电线路直接驱动LED 发送可见光信号的设计。