APP下载

基于有限状态机的串行通信采样数据分析方法

2016-09-10杨健康李红领杨新旺尚世锋

计算机与数字工程 2016年8期
关键词:状态机高电平数据流

杨健康 李红领 杨新旺 尚世锋

(装甲兵工程学院信息工程系 北京 100072)



基于有限状态机的串行通信采样数据分析方法

杨健康李红领杨新旺尚世锋

(装甲兵工程学院信息工程系北京100072)

基于物理层波形的串行通信测试方法是通过对物理层波形的采样并分析得到数据链路层数据。根据CAN总线和RS232的协议结构,各数据域的前后相关且状态有限,采用有限状态机对数据流进行扫描分析可实现数据的快速处理。

有限状态机(FSM), CAN总线, RS232

Class NumberTP336

1 引言

CAN(Control Area Network)即控制器局域网,被广泛应用于工业自动化、船舶、车辆等方面,CAN总线系统的性能测试成为应用单位和厂家关心的问题[1~2]。对于专用设备和特种车辆的CAN总线网络测试,有以下需求:

1) 适用于所有车载总线的测试。基于链路层的测试方法是通过协议转换器把CAN总线数据格式转换为串口数据,通过USB接口或者COM口与计算机通信来获取总线上的数据[3~4],要求总线网络的传输波特率已知。而不同的车载CAN总线网络通信时的位速率可能不一样,基于接口芯片的分析仪在不知道总线位速率的情况下不能从总线上接收到任何数据。因此要求测试系统应该能自动识别总线通信波特率,并正确解析出总线传输数据。

2) 能够对车载CAN总线网络实时监听。根据专用设备和特种车辆的特点,需要带监听功能的测试设备对车载CAN总线进行实时监听,并完整记录原始的总线信息,在实际应用中最准确的把握车载CAN总线的传输性能参数,捕捉到突发性情况。

基于物理层波形的CAN总线测试方法通过对物理层波形的分析得到数据链路层数据[5~6],其功能包括:

1) 支持采集并存储车载CAN总线和RS232串行接口的物理层波形;

2) 通过波形分析能自动检测总线通信系统波特率;

3) 设计译码模块解析存储的波形文件得出总线上传输的CAN数据信息;

4) 能分析从CAN总线波形解析出的数据,标记其错误帧。

该系统要求采样速率最高为10MS/s,对于双通道信号则最高达到40MBytes/s的采样数据量,要求最低存储时间不小于1小时,如何提取解析二进制采样数据成为系统需要解决的主要问题。现有的高速数据采集分析系统主要采用DSP芯片实现信号采集处理[7],并进行实时分析。

2 采样数据特征

串行通信协议的帧一般都分为多个域[8],RS-232协议分为起始位、数据位、停止位、校验位,CAN总线通信协议的数据帧由七个不同的位场组成,即帧起始、仲裁场、控制场、数据场、CRC场、应答场、帧结束。

采样数据以二进制方式存储,每个采样值为16位,低字节在前,高字节在后。由采样定理可知,对于一个bit的采样率必须超过数据传输速率的2倍,才能恢复出正常的数据。对于串行通信来说,波特率由几百bit到1M,分析采样数据必须能够识别出各域的起始点和结束点。而对于有些协议来说,前一个域的值决定了后一个域的含义,如对于CAN总线来说,IDE位决定了该帧为标准帧还是扩展帧,而后续的域中这两种帧的数据结构式不同。

如图1所示,该实例是对双通道串行通信的采样数据,每行四个采样值,其中0、1表示第一通道、2、3表示第二通道,依此类推。从图中可见,从“00030c00h”开始,第一通道的数据开始发生变化,由低电平跳变到高电平。

图1 采样数据实例

在数据还原分析过程中,必须根据信号的跳变识别出各个比特的分界点以及协议帧各数据域的分界点,如CAN总线的正常数据帧,要根据前续的分析结果确定后面的bit代表的含义。对于正常数据帧以及错误帧,这些分界点的状态变迁情况是有限的。不属于上述情况的变迁则属于异常情况。

3 采样数据分析

3.1数据分析

逐字节的数据分析方法需要频繁读取硬盘,影响数据分析速度。而对于现有的海量数据分析方法,如数字地图采用的分层读取方法并不适用,因为数字地图等数据虽然数据量大,但相互之间的有一定的关联性[9],可进行专题的数据处理。而对于采样数据,数据间没有必然的逻辑关系。

为提高数据分析的可靠性,必须充分利用串口通信协议的各种特征,即:

1) 数据协议是已定的,包括标准协议和扩展协议;

2) 检测信号的跳变点;

3) 每个bit所代表的含义与协议及前后比特序列相关。

因此,对数据的分析不是简单的静态读取,而是按照信号按时间序列进行读取、比较、判断、解析的动态过程,在这一过程中,协议域的识别事实上被划分为几种特定的状态,每一种状态不仅仅与数据本身相关,也与数据的前一状态相关。根据该特点,可以采用有限状态机对数据流进行分析。

3.2有限状态机

有限状态机(Finite-state Machine,FSM)简称状态机,是表示有限个状态以及在这些状态之间的转移和动作等行为的数学模型[10]。

有限状态机由有限个状态和相互之间的转移构成,在任何时刻系统总是处于一个特定的状态。当接收到一个输入事件时,状态机产生一个输出,同时伴随着状态的转移。有限状态机的组成包括:一个有限的状态集合Q,一个有限的输入集合I,变迁函数δ:Q×I→Q。有限状态机通常用图的方式表示,其节点代表状态。若在状态q1接收到某个输入事件I后转向q2状态,就在图中画一条从q1到q2的箭头线,并在弧线上标记I。此时,其变迁函数δ(q1,I)=q2。利用FSM有限状态机方法进行任务内部逻辑的分析、设计和开发是一个理想的选择。如图2所示表示一个简单的有限状态机[5]。

图2 简单的有限状态机

FSM在很多不同的领域中得到应用,包括电子工程、计算机科学、数学和逻辑学。在计算机科学中,FSM被广泛应用于建模应用行为、电路系统设计、软件工程、网络协议[11~15]。

4 数据分析的有限状态机

由于帧数据流并不是按照RS232和CAN协议的帧结构顺序发送的,因此必须根据数据流解析协议帧,按照协议结构将数据流解析成标准的帧格式。在自动计算波特率结果后,在数据流中分析连续的字符数,根据数据跳变点进行处理。根据有限状态机思想,将数据流从头到尾的每一次阶跃都看作是一种状态的转变,一帧结束后则是新的循环。状态转变后则记录转变之前的数据,这样可以将数据流的各个字段按照传输顺序转换成标准的协议帧结构。

4.1RS232数据的状态转换

RS232数据的状态、输入符号、状态转换函数列如下:

1) S0,初始状态(INIT),起始状态,开始进行数据搜索,采样值大于阈值时,发现高电平;

2) S1,发现高电平(HIGHMEET),发现高电平采样值,增加高电平计数,采样值计数超过5时,确认高电平,否则回到初始状态;

3) S2,确认高电平(HIGHCONFIRM),采样值大于阈值时,采样数据发生跳变,重新计数;

4) S3,发现跳变(LOWJUMPMET),采样值计数超过5时,确认跳变,进入数据处理状态;

5) S4,确认跳变进行数据处理(INDATA),处理数据,生成数据位、校验位、停止位等数据帧信息。

基于有限状态机的RS232通信采样数据的检测处理状态转换过程如图3所示。

图3 RS232数据解析的状态转换

4.2CAN数据的状态转换

在CAN采样数据处理阶段,从发现CAN数据低电平到发现跳变与RS232数据处理过程相同,但CAN数据帧的结构则复杂的多,包括4种基本的帧类型,且后续数据的含义与前一位数据的状态相关,因此状态变化也多,设发现电平值变化、确认、发现跳变、确认统一为检测到数据,则数据的状态、输入符号、状态转换函数列如下:

1) S0,初始状态(INIT),起始状态,开始进行数据搜索;

2) S1,检测到数据(LOWMEET,LOWCONFIRM),进入数据处理过程;

3) S2,进入起始位、ID位、RTR位、IDE位等(INSTART,INID,INRTR,INIDE),CAN总线的起始位、ID位、RTR位、IDE位是固定的,RTR位为0时该帧为数据帧,为1时该帧为远程帧,IDE位在RTR之后,该数据位为0时该帧为标准帧,为1时该帧为扩展帧,根据两个数据位的值确定后续的数据状态;

4) S3,标准数据帧(INDATAFRMSTD),转到标准帧数据长度处理;

5) S4,标准远程帧(INRTFRMSTD),转到标准帧数据长度处理;

6) S5,扩展帧ID(INIDEXT);

7) S6,扩展帧RTR(INRTREXT),远程帧RTR位为0时该帧为扩展数据帧,为1时该帧为扩展远程帧;

8) S7,扩展数据帧(INDATAFRMEXT),转到扩展帧数据长度处理;

9) S8,扩展远程帧(INRTFRMEXT),转到扩展帧数据长度处理;

10) S9,标准帧数据长度(INDATALEN),解析标准帧数据长度,数据帧进入实际数据解析处理状态,远程帧直接转到CRC校验位处理;

11) S10,扩展帧数据长度(INDATALENEXT),解析扩展帧数据长度,数据帧进入实际数据解析处理状态,远程帧直接转到CRC校验位处理;

12) S11,数据位(INDATA),进行数据处理,解析出发送的数据值;

13) S12,校验位(INCRC),解析校验值;

14) S13,结束(INEND);

15) S14,错误(ERR)。

基于有限状态机的CAN总线通信采样数据的检测处理状态转换过程如图4所示。

4.3实际数据解析

采用提出的数据解析方法,在数据分析阶段进行了大量测试,方法得到了充分验证,数据处理速度满足预期要求,RS232串行通信采样数据和CAN总线通信采样数据解析还原如图5、图6所示。

图4 CAN数据解析的状态转换

图5 RS232数据解析结果

图6 CAN数据解析结果

5 结语

基于物理层波形的串行通信采样数据数据量大,各数据域的前后相关且状态有限,采用有限状态机设计的串行通信采样数据解析方法,能够可靠识别CAN总线与RS 232两种协议采样数据各数据域的界限,为提高数据解析及分析效率创造了条件,可在数据处理中进行应用。

[1] 邹勇,宋小庆,王治国,等.基于CAN总线的装甲车辆测控系统[J].装甲兵工程学院学报,2009,23(3):50-54.

ZOU Yong, SONG Xiaoqing, WANG Zhiguo, et al. Measurement and Control System for Armored Vehicles Based on CAN Bus[J]. Journal of Academy of Armored Force Engineering,2009,23(3):50-54.

[2] 何姗,张作宝.基于Modelica的CAN通信系统建模仿真[J].计算机与数字工程,2013,41(9):1475-1477.

HE Shan, ZHANG Zuobao. Modeling and Simulation of CAN-bus Communication System Based on Modelica[J]. Computer & Digital Engineering,2013,41(9):1475-1477.

[3] 孙超.基于USB接口的CAN总线通信适配器的研究和应用[D].大连:大连海事大学,2005:23-26.

SUN Chao. Research on CAN-Bus Communication Adapter Based on USB and Application[D]. Dalian: Dalian Maritime University,2005:23-26.

[4] 于新瑞.汽车CAN总线测试平合的构建与应用[J].机电一体化,2013(8):84-87.

YU Xinrui. Development and Application of Vehicle CAN Bus Test Platform[J]. Mechatronics,2013(8):84-87.

[5] Yang Jiankang, Wang Xiaozhen, Li Tong. Physical Layer Signal Test System of CAN Bus[C]//YUAN Baozong, TANG Xiaofang. The IET 4th International Conference on Wireless, Mobile&Multimedia Networks Proceedings(ICWMMN2011). London: IET,2011:356-359.

[6] 常成,姬进军,李彤.通用车载总线测试系统的设计与实现[J].四川兵工学报,2014,35(8):108-110.

CHANG Cheng, JI Jinjun, LI Tong. Design and Application of General Vehicle Bus Testing and System[J]. Journal of Sichuan Ordnance,2014,35(8):108-110.

[7] 蒋常斌,冯建科,郭什瑞,等.基于DSP的多频带混合信号测试系统[J].现代电子技术,2008,(14):38-40.

JIANG Changbin, FENG Jianke, GUO Shirui, et al. A Multi-bandwidth Mixed-signal Test System Based on DSP[J]. Modern Electronics Technique,2008,(14):38-40.

[8] 罗丰,孙泽昌.汽车CAN总线系统原理、设计与应用[M].北京:电子工业出版社,2010:29-35.

LUO Feng, SUN Zechang. Theory design and application of CAN Bus[M]. Beijing: Publishing house of Electronics Industry,2010:29-35.

[9] 尹言军,叶琳,刘玉春,等.基于百度地图API的专题数据处理技术在地理国情普查中的应用[J].城市勘测,2015(4):47-49.

YIN Yanjun, YE Lin, LIU Yuchun, et al. The Application of Processing Thematic Data in Geography Census Based on Baidu Map API[J]. Urban Geotechnical Investigation & Surveying,2015,(4):47-49.

[10] 张友生.系统分析与设计技术[M].北京:清华大学出版社,2005:279-281.

ZHANG Yousheng. Technology of System Analysis and Design[M]. Beijing: Tsinghua University Press,2005:279-281.

[11] 毛凤翔,韩冰.基于有限状态自动机的远程命令识别与解析[J].计算机与数字工程,2013,41(7):1146-1149.

MAO Fengxiang, HAN Bin. Recognition & Translation of Remote Commands Based on Finite State Machine[J]. Computer & Digital Engineering,2013,41(7):1146-1149.

[12] 詹瑾瑜,陈忠湘,郝宗波.基于有限状态机的指针解引用静态检测方法[J].四川大学学报(工程科学版),2011,43(4):135-142.

ZHAN Jinyu, CHEN Zhongxiang, HAO Zongbo. Static Pointer Dereference Checking Method Based on Finite-state Machine[J]. Journal of Sichuan University(Engineering Science Edition),2011,43(4):135-142.

[13] 孙宏旭,邢薇,陶林.基于有限状态机的模型转换方法的研究[J].计算机技术与发展,2012,22(2):10-13.

SUN Hongxu, XING Wei, TAO Lin. Research of Model Transformation Approaches Based on Finite State Machine[J]. Computer Technology and Development,2012,22(2):10-13.

[14] 施先旺,刘婷婷,李国良.采用有限状态机实现控制指令的可靠检测[J].火箭推进,2011,37(5):63-68.

SHI Xianwang, LIU Tingting, LI Guoliang. Control instruction detection realized by finite state machine[J]. Journal of Rocket Propulsion,2011,37(5):63-68.

[15] 罗元剑,姜建国,王思叶,等.基于有限状态机的RFID流数据过滤与清理技术[J].软件学报,2014,25(8):1713-1728.

LUO Yuanjian, JIANG Jianguo, WANG Siye, et al. Filtering and Cleaning for RFID Streaming Data Technology Based on Finite State Machine[J]. Journal of Software,2014,25(8):1713-1728.

FSM-Based Analysis Method of Serial Communication Sampling Data

YANG JiankangLI HonglingYANG XinwangSHANG Shifeng

(Department of Information Engineering, Academy of Armored Forces Engineering, Beijing100072)

The test method of serial communication based on physical layer wave shape is gaining the data link layer by sampling and analyzing physical layer wave shape. According to the protocol structure of CAN bus and RS232, the relationship and station of each data field is limited. Searching and analyzing the data stream by Finite-state Machine (FSM) can make data immediate processing available.

Finite-state Machine(FSM), CAN bus, RS232

2016年2月7日,

2016年3月19日

杨健康,男,硕士,讲师,研究方向:装备保障信息化技术、战术通信。李红领,男,硕士,讲师,研究方向:战术通信技术。杨新旺,男,硕士,讲师,研究方向:系统仿真。尚世锋,男,博士,讲师,研究方向:装备保障信息化。

TP336

10.3969/j.issn.1672-9722.2016.08.043

猜你喜欢

状态机高电平数据流
一种基于FPGA的PWM防错输出控制电路
汽车维修数据流基础(上)
汽车维修数据流基础(下)
基于有限状态机的交会对接飞行任务规划方法
TS-03C全固态PDM中波发射机开关机控制电路原理及故障分析
浅谈物理电路与数字电路
PDM 1kW中波广播发射机保护电路分析
基于数据流聚类的多目标跟踪算法
双口RAM读写正确性自动测试的有限状态机控制器设计方法
北医三院 数据流疏通就诊量