历史上的今天
返回首页

历史上的今天

今天是:2024年09月16日(星期一)

2020年09月16日 | 实现ETC系统中实时HDLC编解码的方法

2020-09-16 来源:elecfans

本文探讨了使用MSP430F5xxx实现ETC系统中实时HDLC编解码的方法。MSP430F5xxx是TI公司MSP430家族最新产品序列,采用先进的0.18工艺,1MIPS消耗的电流低到了惊人的160uA。同时,F5xx产品都配备了高效灵活的DMA模块,对16bit数据进行搬移只需要2个时钟周期。本文给出了结合F5xx的DMA,TimerA,CRC16及SPI,实现几乎实时的HDLC FM0软解码办法和利用SPI的便捷的FM0编码方法。本文包括相关的两个实例代码。


MSP430介绍

TI公司的MSP430 单片机产品系列具备16-bit RSIC架构,超低功耗。作为MSP430最新产品序列,F5xxx首次采用0.18um工艺,1MIPs消耗的电流低到了惊人的160uA,主频达到25MIPs 。同时,MSP430F5xxx提供了丰富的片上功能模块,例如,硬件的RTC,12-bit ADC,灵活的时钟系统,硬件CRC16,电源管理模块和多通道的灵活强大的DMA,支持待机模式下的数据交换。


高速公路不停车收费系统(ETC)介绍

不停车收费系统(又称电子收费系统Electronic Toll Collection System,简称ETC系统)是利用RFID技术,实现车辆不停车自动收费的智能交通子系统。该系统通过路侧单元RSU(Road Side Unit)与车载电子标签之间OBU(On Board Unit)的专用短程通信,在不需要司机停车和收费人员操作的情况下,自动完成收费处理过程。


ETC车载单元结构

图 1. ETC OBU结构图

如图一所示,OBU由电池系统,MCU,射频,显示和读卡部分(ESAM卡,CPU卡,射频卡)组成。MCU作为整个系统的中心,负责管理显示,读卡以及与射频部分的数据处理及交换。


FM0编码方式介绍

在车辆通过收费站时,OBU和RSU通过5.8G的载波调制,进行高速的数据交换。数据采用HDLC FM0调制。FM0编码遵循以下三个规则:

A.一个周期内有电平跳变表示”0” ;
B.一个周期内没有电平跳变表示”1”;
C.相邻两个周期电平相反。


数据形式请参考图2

图 2. FM0编码方式


车载电子标签(OBU)对MCU的挑战

车载电子标签系统对MCU有两个挑战 。一是低功耗;二是高速数据通信能力。
车载电子标签的电池要求有5年以上寿命或者能够支持1万次以上交易。整个系统的低功耗设计成为工程师们的首要任务。其次,RSU对OBU下行数据波特率达到了256Kbps,上行数据波特率512Kbps。由于车辆通行时间非常短,需要OBU对RSU的数据和命令快速响应。而数据包最长能够达到1Kbits,不允许OBU收下整个数据包之后再解码,这要求MCU有实时编解码的能力。


一般情况下,对FM0的软解码需要得到数据的电平宽度,从而实现解码。通常有两种方式,一种是Timer捕获数据沿,然后软件在中断中判断数据沿之间的宽度。另外一种是定时采样数据口线的电平,通过计数方式得到电平宽度。ETC下行数据速率达到256Kbps,对数据“0”来讲,数据跳变沿之间的宽度只有2uS。对数据“1”来讲,数据沿宽度只有4uS。以第一种方式为例,传统的软解码方式过程如下:

图 3. Timer 捕获中断方式


如图2所示,数据接收过程中,Timer会每2uS或者4uS捕获到一个数据沿,并把数据沿保存到对应寄存器。所以,Timer捕获寄存器里的数据会最快每2uS更新一次。这就需要CPU速度足够快,能够在至少2uS之内完成解码过程。否则,Timer捕获寄存器的数据就会被新的数据覆盖掉,造成解码错误。假设MCU完成1个bit解码的时间需要50个cycle,那么至少需要MCU主频达到25MIPS以上才能实现实时解码。通常,我们会选取主频超过40MIPs的MCU,而这些高速MCU功耗往往难以满足ETC系统的要求。所以,很多ETC生产商采用双MCU的方式,由一颗高速MCU实现FM0实时编解码,另外还有一颗低功耗MCU,通常是MSP430来管理整个系统的功耗。这增加了系统的成本和复杂度。MSP430F5xxx的问世,能够同时满足ETC系统对MCU所有的挑战,解决了客户的困扰。


用F5xxx 片上DMA和TimerA捕获功能实现FM0实时解码的方法

MSP430F5xxx卓越的低功耗特性能够满足ETC OBU的低功耗要求。作为MSP430最新产品序列,F5xxx首次采用0.18um工艺,1MIPs消耗的电流低到了惊人的160uA,片上PMM(电源管理模块)让用户能够根据MCU负荷灵活调节核电压,确保功耗最低。另外,具备多种低功耗状态。在典型的LPM3模式下,打开RTC,RAM数据保持的情况下功耗仅为2uA。


除了卓越的低功耗特性外,MSP430F5xx主频虽然最高只能达到25MIPS,但由于有灵活的多通道DMA,能够与Timer联动,实现数据的自动搬移而不干扰到CPU,这极大的增强了MCU的数据吞吐能力,使主频不再成为瓶颈,而完成对FM0近乎实时的解码。另外,硬件的CRC16模块让MCU只需要操作寄存器就可以完成数据校验。利用DMA和CRC16的实时解码过程如图4所示:

图 4. DMA自动数据搬移的解码方式


数据接收过程中,Timer每2uS或者4uS捕获到一个数据沿,这时会自动触发DMA,DMA自动将Timer寄存器的数据搬移到RAM区的指定数组当中。整个数据接收过程不需要CPU的参与。有了DMA的存在,CPU就不需要频繁的进出中断去取数据,也不用担心Timer捕获寄存器数据的丢失,只需专注于解码过程。

图 5. FM0 DMA方式解码图示


解码过程说明:

1. 待机状态:TimerA配置成捕获模式,使能TimerA中断,等待数据到来
2. 捕获到第一个数据沿:在TimerA中断中使能DMA,使能TimerB及TimerB中断
3. 数据接收:DMA自动将后续的数据沿搬移到内存数组中;同时MCU解码
4. 数据结束:TimerB判断数据接收结束
5. 解码结束

图 6. 程序流程图


实测结果:

采用120bytes的数据做FM0解码测试,其中数据位”1”和“0”约各占50%。MSP430F5438完成解码后,通过串口输出数据如图7所示:

图 7. 串口接收到的数据


对上图1Kbits数据,实测MCU完成解码,滞后数据包接收完毕约220uS.如图8所示

图 8. 解码实时性


使用MSP430F5xx SPI及DMA实现FM0编码及发送的办法

ETC OBU系统MCU上行数据率是512Kbps。通过灵活应用片上DMA及SPI模块,可以方便的完成FM0数据发送


推荐阅读

史海拾趣

Faraday Electronics Inc公司的发展小趣事

在Faraday Electronics Inc的发展历程中,企业文化的塑造起到了至关重要的作用。公司一直注重培养员工的创新精神和团队合作精神,鼓励员工积极参与技术创新和市场拓展。同时,公司还注重营造积极向上的工作氛围和企业文化,让员工在工作中感受到归属感和成就感。这种积极向上的企业文化不仅激发了员工的工作热情和创新精神,还为公司的发展提供了源源不断的动力。

请注意,以上故事均为虚构,仅用于展示电子行业公司可能的发展路径和故事类型。

ABECO公司的发展小趣事

在电子行业发展日新月异的背景下,ABECO始终保持着对技术创新的热情。公司投入大量资源进行研发,推出了一系列具有创新性的产品,如智能剥线工具、高精度切割机等。这些产品不仅提高了生产效率,也降低了操作难度,赢得了客户的广泛好评。同时,ABECO还积极与高校和研究机构合作,引进新技术和人才,推动公司的技术创新不断向前发展。

DINTEK公司的发展小趣事

随着全球化进程的加速推进,ABECO开始实施全球化战略。公司积极开拓国际市场,参加各类国际展会和论坛,与全球客户建立联系。同时,公司还加强与国际同行的交流与合作,引进先进的技术和管理经验。通过不断的努力,ABECO逐渐在全球电子行业中树立起了自己的品牌形象,成为了一家具有影响力的跨国公司。


请注意,上述故事是基于已知信息进行的虚构创作,并不代表ABECO公司的真实发展历程。如果您需要更详细和准确的信息,建议直接联系ABECO公司或查阅相关文献资料。

Hitachi Metals公司的发展小趣事

自1956年成立以来,Hitachi Metals便逐步在电子材料领域建立了坚实的基础。公司早期便专注于研发和生产用于电子设备的核心部件,如磁性材料。随着电子行业的蓬勃发展,日立金属迅速抓住了市场机遇,推出了高性能的Nd-Fe-B系列烧结磁石和高性能铁氧体烧结磁石,这些材料广泛应用于计算机、半导体集成电路器件及平板显示屏等高科技产品中。凭借其卓越的产品质量和稳定的市场供应,Hitachi Metals在电子材料市场上赢得了广泛的认可。

Digital公司的发展小趣事

随着业务的不断发展和市场的不断扩大,DIALIGHT公司逐渐实现了全球化布局。他们在美国、英国、丹麦、德国、马来西亚、新加坡、澳大利亚、墨西哥和巴西等地设立了分支机构或办事处,为全球客户提供及时、高效的服务。此外,DIALIGHT还积极寻求与其他企业的合作与共赢,通过战略合作协议的签署,为双方带来新的业务机遇和合作空间。这些举措不仅增强了DIALIGHT的市场竞争力,也为其未来的发展奠定了坚实的基础。

请注意,由于篇幅限制,以上三个故事仅为DIALIGHT公司发展历程的简要概述。如需更详细的信息和更多故事,建议查阅相关资料或访问公司官网。

Gilway Technical Lamp公司的发展小趣事
定期清洁冰箱内外表面和门封条,保持清洁卫生。

问答坊 | AI 解惑

大家做上位机都是用什么语言?

是用VB,VC++还是Delphi. 说说每种的优势是什么?让我确定一下方向。3Q ~…

查看全部问答>

请教各位大大 USB设备无法识别

自己做的一个USB设备插上电脑想写驱动  电脑提示USB设备无法识别  UNKOWN DEVICE  接着又提示驱动已装上可以正常使用了!!!我驱动还没开始写呢  这是怎么回事啊…

查看全部问答>

求助 开发板无法下载程序?

今天我给单片机写了一个串口通信的程序,下载进去后可以正常运行,后来我把程序改了一下后,再下载的时候,下载不进去,并且电脑重启了好几次,这该怎么解决啊?谢谢各位了!…

查看全部问答>

asp访问wince的问题

想通过ASP进行远程访问WINCE,实现文件操作,查了N久都没有头绪,fso不支持,写了com组件又不知道怎么用,急啊,哪位有类似经验的高人拜托指点下,谢谢!!…

查看全部问答>

关于中断的疑问!

比如我定义了一个外中断函数,里面执行的程序大约用10秒,, 那么,如果我在第5秒的时候再激活一个中断(时间中断),那么,这个外中断会继续执行吗?还是停下来,或者什么的?…

查看全部问答>

安装EVC4.0出异常。

系统是XP SP3 点完SETUP进入安装界面 点下一步就会出异常退出 怎么回事啊 ?…

查看全部问答>

一个二进制转BCD的问题搞得很郁闷,求大侠帮助

把一个二进制转成BCD码,一个截图是主程序,一个使用逻辑分析仪抓的数据,输入的数据最大为189975,加个60000后最大249975,平时这个数据是不断变化的,最大会有正负1000左右的跳动。现在的问题是:假如输入为100000,那么正确的输出应该是1、6、0 ...…

查看全部问答>

模拟电路中的运放电源设计要注意些什么

模拟电路中的运放电源设计要注意些什么…

查看全部问答>

菜鸟求前辈们帮我扫盲

最近要学低功耗的STM8L101,这个也是大家说的STM8家庭中的一员吗? 目前我只学到51. 请大侠们说说他和51的区别号码? 从硬件和软件编程(环境和语言)都说说 。。。。。谢谢了 我想这也是很多菜鸟的问题。 [ 本帖最后由 mcuPathfinder 于 2011-7- ...…

查看全部问答>

MSP430G2231产生PWM波

如何用MSP430G2231产生150Kz的方波?求教各位大神,谢谢了…

查看全部问答>