本发明涉及总线通信,尤其涉及一种采用十六进制编码的pwm调制解调总线通信方法。
背景技术:
1、pwm(pulse width modulation),即脉冲宽度调制,应用在总线通信领域,可以实现无极性通信,增强总线设备的抗干扰能力,增加总线带载能力,提高总线的有效通信距离。
2、总线控制技术是指一台服务器为主机,众多终端设备为从机,主机和从机通过共同的通信线路连接成通信网络的控制技术。在总线系统中,服务器与终端通过指令应答的方式实现点对点通信,也可以广播系统指令。目前广泛采用的rs485总线都采用电平的幅值编码,并采用一定的波特率传输数据。由于传输损耗,电平幅值容易衰减,线路受到干扰时,电平幅值容易变形。由于线路的衰减原因采用电平幅值传输信号的总线有效通信距离和挂载终端的数量都有限,要提高通信距离,必须增加总线信号增强装置,增加系统成本。传统的总线通信都有极性,即信号线有正负极,终端的信号线正负极如果被接反将造成灾难后果,轻则总线不通,重则烧毁线路。本发明针对传统总线技术的以上缺点,采用将8位二进制表示的字节由2位十六进制编码表示和pwm非均匀调制技术,实现了总线通信的无极性化,抗干扰能力增强,有效传输距离增加。
3、本发明要解决的技术问题一是传统的二进制编码位数多,容易受到干扰变形;第二个技术问题是实现总线无极性通信。传统的总线通信都有极性,即信号线有正负极,终端的信号线正负极如果被接反将造成灾难后果,轻则总线不通,重则烧毁线路。总线故障时需要逐一排查终端,故障排除耗时耗力。
技术实现思路
1、本发明要解决的技术问题在于针对现有技术中的缺陷,提供一种采用十六进制编码的pwm调制解调总线通信方法,将8位二进制表示的字节由2位十六进制编码表示,采用十六进制编码可以有效提高pwm通信的数据传输效率。
2、本发明解决其技术问题所采用的技术方案是:
3、本发明提供一种采用十六进制编码的pwm调制解调总线通信方法,该方法包括:
4、采用十六进制编码的编码方法:在进行pwm编码数据发送时,先发送至少3个同步码,然后发送采用十六进制编码的数据位,最后发送至少2个数据包结束码,完成数据包发送;当接收数据时,先捕获同步码,然后开始捕获有效数据;通过计算捕获的pwm宽度,判断是否为有效数据;在捕获数据的过程中,如果捕获到数据包结束码,完成数据包接收,进入数据包解码处理过程;
5、采用总线极性裁决方法:通过同步码来确定数据包的解码极性,结束码被来确定数据包是否接收完成。
6、进一步地,本发明的该方法中采用十六进制编码的方法具体为:
7、十六进制编码与pwm宽度对应关系为:
8、t(n)=t(0)+n*64
9、其中,相邻码元pwm编码宽度间隔为64μs,t(n)为编码n对应的pwm宽度,n=-1、0、1……15;n=-1为数据包分隔符的pwm宽度,t(0)为编码0对应的pwm宽度;一个十六进制编码由四位二进制编码构成,因此取:
10、t(15)=4*t(0)
11、由最大pwm宽度t(15)和最小pwm宽度t(0)得到最高数据传输率;
12、令n=15得到:
13、t(15)=t(0)+15*64
14、联立解出t(0)=320μs、t(15)=1280μs,取n=-1得到数据包分隔符pwm宽度为256μs;
15、每一个字节由2个十六进制码构成,十六进制码元0~15的pwm宽度从320μs按照64μs步长增到1280μs,十六进制码元的pwm发送宽度满足:
16、t(n)=320+n*64
17、其中,n=0、1、…、15,t(n)为十六进制码元n的pwm发送宽度。
18、进一步地,本发明的该方法中解码的方法具体为:
19、接收端解码出的十六进制码元满足:
20、n=int((t(n)-320)/64-1*δ)
21、其中,t(n)为pwm捕获时间宽度,δ为解码接收端pwm捕获误差,δ取最大误差50%,得到pwm宽度与十六进制值的解码关系:
22、n=int((t(n)-320)/64-0.5)=int((t(n)-288)/64)
23、接收捕获宽度小于288μs为数据包分隔符pwm宽度,大于1312μs为无效的pwm宽度,宽度在288~1312μs间为有效十六进制编码的pwm宽度,对应的十六进制码元值由解码关系公式计算得到。
24、进一步地,本发明的该方法中总线极性裁决方法具体为:
25、采用下降沿捕获,捕获到同步码后,开始捕获有效数据码,一旦捕获到第一个有效数据位,就开始连续捕获数据直到捕获到数据包结束码,完成数据包接收;
26、在同步码捕获阶段,如果捕获到第一个非同步码的脉冲宽度,判断是否为有效数据位的脉冲宽度,如果是有效数据,说明收发设备pwm脉冲信号极性相同,开始连续捕获数据过程,否则需要判断是否是pwm脉冲信号极性相反的情况。
27、进一步地,本发明的该方法中判断是否为有效数据的方法具体为:
28、当接收数据时,先捕获同步码,然后开始捕获有效数据,如果该宽度为(数据包同步码pwm宽度+有效数据码pwm宽度)/2,说明收发设备pwm脉冲信号极性相反,这时第一个有效数据位的pwm宽度为(当前捕获的pwm宽度-数据包同步码pwm宽度/2)*2,如果计算出的pwm宽度为有效数据位,则开始捕获数据直到捕获到数据包结束码,完成数据包接收;在pwm脉冲信号极性相反的情况下,当前数据位pwm脉冲宽度=(当前捕获的pwm宽度-上次捕获的数据位pwm宽度/2)*2。
29、进一步地,本发明的该方法中捕获数据过程中,捕获到无效的脉冲宽度表示线路受到干扰;如果无效的脉冲宽度小于有效数据位的最小脉冲宽度,则忽略这次捕获,继续新的捕获,否则应该放弃数据包接收,重新开始新的数据包捕获过程。
30、进一步地,本发明的该方法中当有数据发送时,按照下表规则对发送数据做pwm编码:
31、 十六进制码元 pwm最小宽度,μs pwm典型宽度,μs pwm最大宽度,μs 数据包同步码 224 256 288 0 288 320 352 1 352 384 416 2 416 448 480 3 480 512 544 4 544 576 608 5 608 640 672 6 672 704 736 7 736 768 800 8 800 832 864 9 864 896 928 a 928 960 992 b 992 1024 1056 c 1056 1088 1120 d 1120 1152 1184 e 1184 1216 1248 f 1248 1280 1312 数据包结束码 1312 1344 1376
32、上表为pwm十六进制编码。
33、本发明产生的有益效果是:
34、1、本发明提供一种pwm十六进制编码和解码方法,可以大大缩减编码条数,增加信息量和抗干扰能力,有效提高总线传输效率。
35、采用将二进制编码改为十六进制编码和pwm非均匀调制技术,可大大提高总线通信速率,不仅实现了总线通信的无极性化,而且抗干扰能力增强,有效传输距离增加。
36、2、本发明针对传统总线技术的以上缺点,采用pwm非均匀调制技术,改进了总线通信技术,不仅实现了总线通信的无极性化,而且抗干扰能力增强,有效传输距离增加。