摘要:FM0编码以其便于位同步提取、频谱带宽较窄、实现电路简单而在ETC中得到广泛的应用,线路FM0解码模块是ETC系统基带电路重要组成部分,本文基于ETC系统中车载单元(On board unit,OBU)与路边单元(Road sideunit,RSU)之间的短距离双向通信,以提高FM0解码速度的目的,根据FM0鳊码原则,在FPGA软件环境下用高级硬件描述语言VHDL实现FM0解码器设计,给出程序代码,在Quartus II环境下仿真,并通过逻辑分析仪观察波形。同等功能下,解码时间是图形输入法的五分之一。
关键词:FM0;短距离通信;VHDL;FPGA;数据解码
电子不停车收费系统(ETC)兴起于80年代,主要适用于道路、大桥和隧道收费站,由于过往车辆通过收费站时无须停车便能够实现自动收费,大大改善了目前普遍存在的路桥收费站停车收费造成交通堵塞的恶劣状况,受到各国政府和企业的广泛重视,许多世界著名的电子公司竞相开始研制,先后在北美、欧洲、日本、澳洲、新加坡等地广泛应用,已经成为智能交通的一大支柱产业。我国的ETC系统起步在上世纪90年代,主要靠引进国外的先进技术,虽然也取得了积极的效果,但由于起步晚,国内公路ETC工作仍处于试验和探索阶段。
整个ETC系统主要由车载单元(On board unit,OBU)与路边单元(Road side unit,RSU)组成,OBU与RSU之间的短距离双向通信属于专用短程通信(DSRC-DeDICated Short Range CommunICations)协议规范的范畴,该协议中的物理层可配置为A和B两个可选配置,其中配置A的上下行链路都定义为FM0,主要用于基本的ETC应用。线路FM0解码模块是ETC系统基带电路重要组成部分,这使得对FM0解码器的研究和优化提上日程。
本文介绍了在FPGA软件环境下用高级硬件描述语言VHDL实现FM0解码器设计,最终实现ETC系统中OBU和RSU中的FM0解码模块的逻辑功能。
1 FM0码介绍
FM0编码(即Bi-Phase SPACe)即为双相间隔码编码,编码规则是在每个码元的开始、结束以及‘0’码元正中间时刻发生跳变,其余时刻不变化。FM0编码以其便于位同步提取、频谱带宽较窄、实现电路简单而在短距离通信中得到了广泛的应用。编码的示意图如图1所示。
图1示出了代码序列为10110001时,FM0码的波形。图1(a)是源代码序列,图1(b)是FM0码的波形。比较图1(a)和图1(b)两个波形可以看出,FM0码实际上只要用一个与原始信号同步的时钟信号的跳变沿(上升沿或下降沿)以及‘0’码元对应的跳变沿(上升沿或下降沿)触发翻转,即可完成数据编码。
2 FM0解码器的实现方案选择
FM0解码器的实现方法主要可分为以下3种:第一种是使用专用集成芯片;第二种是软件编程实现,包括PC机和单片机;第三种是使用可编程逻辑器件实现,主要使用FPGA器件。目前市面上常用的FM0码的解码芯片比较少,例如STR715芯片,并且专业芯片的使用存在一定限制。软件编程方法尽管具有硬件结构简单、功能灵活等特点,但程序运行占用处理器资源多,执行速度慢,对信号的延时和同步性不易预测,只适用于低速信号处理。使用FPGA器件实现FM0解码,能够有效综合前两种方法的优点,因为FPGA采用硬件处理技术,可反复编程,能够兼顾速度和灵活性,并能并行处理多路信号,实时性能够预测和仿真。由于解码的算法多为逻辑运算和时序运算,采用灵活性极大的可编程逻辑器件FPGA完成FM0编解码更适合。
作为ALTERA公司第四代可编程逻辑器件开发软件,QuartusⅡ在设计流程的每个阶段都提供了图形模式和命令行模式等极为便利的输入手段,具有快速的编译和直接易懂的器件编程功能、对众多种芯片的支持和百万门级的设计能力。QuartusⅡ为FPGA设计者提供了原理图输入、HDL输入、图形设计输入、内存编辑输入等输入方法。
目前,原理图输入法已用于FM0编解码器设计,尽管方式直观、简单易行,但对设计者的硬件水平要求高,编解码时间较长。
硬件描述语言VHDL[10]就是用语言描述替代图形化(元件拼凑)设计,简化了设计工作,节约了开发的时间,大大缩短编码时间,对于设计者的硬件水平要求不高,比FPGA设计中较直观的原理图输入法更具优势,更具推广价值。
3 FM0解码器的设计
本文以RSU中的BST信号作为输入信号,进行FM0解码设计,该信号的传输速率为256 kB/s。由FM0编码规则可反推之,如果在一个码元时间内解码数据连续跳变两次,则为‘0’电平,否则为‘1’电平。本文采用带有复位端口的同步计数器原理产生同步时钟信号,因此采用16倍速率的时钟信号。
如图2所示,解码原理分为同步时钟信号产生和在一个码元时间解码数据连续两次跳变检测两部分。