CN102522997A - Fm0编码数据的解码方法和装置 - Google Patents
Fm0编码数据的解码方法和装置 Download PDFInfo
- Publication number
- CN102522997A CN102522997A CN2011104074180A CN201110407418A CN102522997A CN 102522997 A CN102522997 A CN 102522997A CN 2011104074180 A CN2011104074180 A CN 2011104074180A CN 201110407418 A CN201110407418 A CN 201110407418A CN 102522997 A CN102522997 A CN 102522997A
- Authority
- CN
- China
- Prior art keywords
- data
- decoded
- value
- threshold value
- timer
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Landscapes
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
本发明公开了一种FM0编码数据的解码方法及装置,用以降低对硬件芯片的性能的要求,该方法包括:获取缓存区中的待解码数据,其中,所述待解码数据是通过定时器输入捕获采集所述FM0编码数据的波形获得的;将所述待解码数据与阈值进行比较,根据比较结果确定解码数据。
Description
技术领域
本发明涉及通信技术领域,特别涉及一种FM0编码数据的解码方法和装置。
背景技术
电子不停车收费系统(Electronic Toll Collection system,ETC系统)采用专用短程通信(Dedicated ShortRange Communication,DSRC)技术,完成路侧单元(Roadside Unit,RSU)与车载单元(On Board Unit,OBU)之间的双向通信,通过无线方式进行安全认证和消费扣款,实现不停车收费,大大加快了车辆通行速度,减少了收费匝道口的拥堵状况,提高了公路的运力。
目前在全国各地都开展ETC系统建设,为了实现ETC设备的互联互通,ETC系统中的RSU和OBU设备必须满足国标GB/T20851-2007的技术要求。GB/T20851.1-2007对这种专业短程通信的物理层做了明确的规定,在通信的编码方式上,国内绝大部分设备厂家采用A类FM0编码,RSU发送给OBU的位速率为256kbit/s,位时钟精度为±100×10-5;OBU发送给RSU的位速率为512kbit/s,位时钟精度为±100×10-6。
为了保证车辆在运动中完成全部交易流程,需要用最短的时间完成交易。因此,数据解码速度的快慢影响整个交易时间的长短。
FM0编码的全称为双相间隔码编码,其特点是在一个位窗内采用电平变化来表示逻辑。如果电平从位窗的起始处翻转,则表示逻辑“1”。如果电平除了在位窗的起始处翻转,还在位窗中间翻转则表示逻辑“0”。图1为数据流“01100101”经FM0编码后的电平波形。
根据FM0编码规则可知,“1”对应的脉冲的周期的时长大于“0”对应的脉冲的周期的时长。因此,FM0编码数据的解码过程中,测量每个脉冲周期的时长,将时长大的定义为“1”,将时长小的定义为半个“0”,将两个连续的半个“0”合并为一个数据“0”。例如:对于256kbps速率数据,把持续时长为3.9us的脉冲周期定义为1,持续时长为1.95us的脉冲周期定义为半个0;对于512kbps速率数据,把持续时长为1.95us的脉冲周期定义为1,持续时长为0.977us的脉冲周期定义为半个0。
目前,通过定时器计数的方式采集FM0编码数据中每个脉冲周期的时长,具体包括:每一个跳变沿即采集一次定时器的计数值,保存到对应的寄存器;然后将当前计数值减去上一个计数值,即可获得当前周期的时长。
由于需要在每个一个跳变沿去采集数据,对于256kbps速率的FM0编码数据,定时器会每隔1.95us或3.9us采集到一个数据,并把数据保存到对应的寄存器;对于512Kbps速率FM0编码数据,定时器会每隔0.977us或1.95us采集到一个数据,把数据保存到对应的寄存器中。所以,定时器对应的寄存器里的数据在解码256kbps数据时,最快会1.95us更新一次,而在解码512kbps数据时,最快会0.977us更新一次,这就需要微处理器(Mirco Control Unit,MCU)有足够快的速度,能在更新前完成解码。
假设MCU完成1bit FM0编码数据的解码时间需要30个时钟周期,进入采集中断读取采集到数据需要25个时钟周期,则实时解码256kbps波形理论需要主频28M IPs(Instructions per second,每秒执行的指令数)以上MCU才能实现实时解码;实时解码512kbps波形,理论最小需要主频56M IPs以上MCU才能实现实时解码。在工程实际应用中,RF收发器均不是理想收发器,在数据包前包后会出现很多杂波,需要MCU来处理,要想在真实使用环境中可靠解码,需要MCU来处理这些干扰,就需要更高主频的MCU来实现。
特别对于512kbps速率数据,其数据更新间隔为0.977us,这样快的数据速率超出了单片机的处理能力,因此,需要使用FPGA或高速率芯片来采集解码FM0编码数据。
解码FM0编码数据时,芯片的大部分资源用于采集数据,只有很少部分资源用于解码,这就要求单片机提供一个大的缓存区域来保存采集的数据,同时也不能实时把数据解码出来;并且,对于512kbps速率FM0编码数据,需要更加昂贵的芯片来实现采集和解码。
因此,现有的FM0编码数据解码过程中采集数据的频率比较快,即数据更新比较快,对硬件芯片的性能要求比较高。并且,一次解码只能确定一个“1”或半个“0”,这样,整个解码过程比较慢,高性能的硬件芯片的解码速率也不高。
发明内容
本发明实施例提供一种FM0编码数据的解码方法及装置,用以降低对硬件芯片的性能的要求。
本发明实施例提供一种FM0编码数据的解码方法,包括:
获取缓存区中的待解码数据,其中,所述待解码数据是通过定时器输入捕获采集所述FM0编码数据的波形获得的;
将所述待解码数据与阈值进行比较,根据比较结果确定解码数据。
本发明实施例提供一种FM0编码数据的解码装置,包括:
获取单元,用于获取缓存区中的待解码数据,其中,所述待解码数据是通过定时器输入捕获采集所述FM0编码数据的波形获得的;
解码单元,用于将所述待解码数据与阈值进行比较,根据比较结果确定解码数据。
本发明实施例中,获取缓存区中的待解码数据,并将所述待解码数据与阈值进行比较,根据比较结果确定解码数据,其中,待解码数据是通过定时器输入捕获采集所述FM0编码数据的波形获得的。由于采用定时器输入捕获的方式获得待解码数据,这样,只有采集到FM0编码数据的波形的特定跳变沿时,才获得待解码数据,而并不是在采集到FM0编码数据的波形的每个跳变沿都获得待解码数据,从而,降低了采集数据的频率,降低了对硬件芯片的性能要求,进一步降低了解码过程中的资源成本。
附图说明
图1为现有技术中FM0编码后的电平波形示意图;
图2为本发明实施例一中PWM输入捕获硬件的框图;
图3为本发明实施例一中PWM实际工作时序图;
图4为本发明实施例一中FM0编码数据的解码的流程图;
图5为本发明实施例一中第一待解码数据的解码流程图;
图6为本发明具体实施例一具体应用中PWM输入捕获时序图;
图7为本发明实施例二中PWM输入捕获硬件的框图;
图8为本发明实施例二中PWM实际工作时序图;
图9为本发明实施例二中FM0编码数据的解码的流程图;
图10为本发明实施例二中第一待解码数据的解码流程图;
图11为本发明具体实施例二具体应用中PWM输入捕获时序图;
图12为本发明实施例中FM0编码数据的解码装置的结构图。
具体实施方式
本发明实施例中,在对FM0编码数据进行解码的过程中,通过定时器输入捕获采集FM0编码数据的波形获得待解码数据,然后将该待解码数据与阈值进行比较,根据比较结果确定解码数据。这样,只有采集到FM0编码数据的波形的特定跳变沿时,才获得待解码数据,从而,增加了采集待解码数据的周期,降低了采集数据的频率,降低了对硬件芯片的性能要求。
本发明实施例中定时器有多种输入捕获模式,例如:单寄存器输入捕获模式,PWM输入捕获模式。这样,定时器被预先配置成某种输入捕获模式后,通过配置的输入捕获模式可采集FM0编码数据的波形,可获得待解码数据。
实施例一,本实施例中,定时器为单寄存器输入捕获模式,该单寄存器输入捕获模式是定时器功能的一个扩展,与定时器对应的只有一个寄存器,一个输入端被设定为上升沿或下降沿检测端口。如图2所示的输入捕获硬件,定时器与捕获寄存器对应。这样,外部波形通过CH2进入到MCU中,在内部链接到边沿检测器。当CH2检测到对应的边沿时,把定时器的值自动保存到捕获寄存器中,并置中断标志位,以及在随后的定时器边沿清零定时器。如果开该定时器中断,则马上进入中断函数进行处理。
单寄存器输入捕获模式中上升沿有效或下降沿有效是通过对MCU进行配置获得的,因此,在进行FM0编码数据的解码之前,还需进行配置,包括:将定时器配置为单寄存器输入捕获模式并根据FM0编码数据的速率,以及设定的分频确定定时器的计数频率。其中,可将与定时器对应的捕获寄存器配置为第一跳变沿或第二跳变沿有效,中断使能。这里,第一跳变沿为上升沿或下降沿。而第二跳变沿为降沿或上升沿。即第一跳变沿与第二跳变沿相反。
一般在将定时器配置为单寄存器输入捕获模式过程中,可将定时器的时钟源配置系统时钟,并将定时器配置为向上计数,配置定时器输入通道2为单寄存器输入输入捕获方式。而配置中断使能包括配置中断向量。
通过上述过程完成了对输入捕获的配置后,输入捕获实际工作时序可参见图3,其中,定时器为单寄存器输入输入捕获模式,通道2(CH2)配置为上升沿有效,中断使能。
在要捕获波形A点(上升沿)时,CH2通道触发,把定时器的值0004保存到捕获寄存器中,置中断标志位触发中断,在定时器计数发生变化的D时刻点,定时器清零,即仍从0000开始。
在C点(上升沿)时,CH2通道触发,定时器值0004保存到捕获寄存器中,置中断标志位触发中断,在定时器计数发生变化的F点,定时器清零。
单寄存器输入捕获,只在波形的上升沿产生中断,在中断中将寄存器的值确定为待解码数据,并读入到缓存区中,用于解码。例如:在C点时,产生中断,将寄存器的值0004确定为待解码数据,并读入到缓存区中。
通过中断方式将通过单寄存器输入捕获模式获得待解码数据存入缓存区中后,对FM0编码数据的解码的过程参见图4,包括:
步骤401:获取缓存区中的待解码数据,其中,该待解码数据是通过定时器输入捕获采集FM0编码数据的波形获得的。
由于待解码数据是通过中断方式存入缓存区中的,这里,将通过单寄存器输入捕获模式采集FM0编码数据的波形获得的待解码数据存入到缓存区。这样,在进行解码时,缓存区中已存储了待解码数据。
这里,可按照先进先出的方式从缓存区中获取待解码数据。当然,也可以按照别的顺序从缓存区中获取待解码数据,这样,在输出解码后的数据时也需按照设定的顺序。
步骤402:将获取的待解码数据与阈值进行比较,根据比较结果确定解码数据。
由于是通过单寄存器输入捕获模式采集所述FM0编码数据的波形获得待解码数据的,这样,只有采集到FM0编码数据的波形的上升沿或下降沿时,才获得待解码数据,因此,待解码数据的值中,最小值对应于两个连续的半个“0”所对应的时长,最大值对应于两个连续的“1”所对应的时长,位于最大值和最小值之间的对应于一个“1”和半个“0”所对应的时长。因此,本发明实施中,先根据待解码数据的值是否在最小值范围内,确定解码数据为两个连续的半个“0”;然后根据待解码数据的值是否在最大值范围内,来确定解码据为两个连续的“1”;最后根据待解码数据的值在由最大值和最小值组成的阈值空间中出现的次数来确定“1”数据在前还是半个“0”数据在前。具体过程包括:
当待解码数据的值小于或等于第一阈值时,确定解码数据为一个0;当待解码数据的值大于或等于第二阈值时,确定解码数据为两个1;当待解码数据的值在第一阈值与第二阈值之间时,根据待解码数据的值在由第一阈值与第二阈值组成的阈值空间中出现的次数,来确定解码数据中“1”数据在前还是“0”数据在前。其中,
本发明实施例中,将第一阈值设定为两个连续的半个“0”对应的时长,为提供一个错误冗余,并增加一定的误差,例如,增加10%或5%的误差;将第二阈值设定为两个连续的“1”对应的时长,并减少一定的误差,例如,减少10%或5%的误差。
每个待解码数据的具体解码过程可参见图5,包括:
步骤501:判断待解码数据的值是否小于或等于第一阈值,若是,确定解码数据为一个0;否则,执行步骤502。
步骤502:判断待解码数据的值是否大于或等于第二阈值,若是,确定解码数据为两个1;否则,执行步骤503。
步骤503:将待解码数据的值在由第一阈值与第二阈值组成的阈值空间中出现的次数加1,获得更新后的次数。
在进行解码过程中,可设置一个变量,用以记录待解码数据的值在由第一阈值与第二阈值组成的阈值空间中出现的次数。在进行解码之前,该变量的值为零,然后待解码数据的值每在由第一阈值与第二阈值组成的阈值空间中出现一次,就将该变量的值加1。
这样,首次进行解码时,该待解码数据的值在由第一阈值与第二阈值组成的阈值空间中出现的次数为零。随着逐个解码,待解码数据的值在由第一阈值与第二阈值组成的阈值空间中出现的次数会增加。当所有解码结束后,可将该变量清零,即将该待解码数据的值在由第一阈值与第二阈值组成的阈值空间中出现的次数可复位为零。
步骤504:判断更新后到的次数是否为奇数,若是,确定解码数据为1加半个0;否则,确定解码数据为半个0加1。
当然,步骤501与502先后顺序可以对调,即可先判断待解码数据的值是否大于或等于第二阈值,再判断待解码数据的值是否小于或等于第一阈值,具体过程就不再累述了。
在本实施例的一个具体应用中,FM0编码数据的速率为256kbps进行配置时,定时器时钟源为系统时钟,时钟的分频为32,这样,配置为输入捕获下降沿模式,定时器的计数频率为256*32*2=16384khz。
输入捕获下降沿时序图如图6所示,输入捕获FM0编码数据的波形共有4种情况,分别是A、B、D和F,这里,C、E与A相同。
由于,捕获的数据有三种长度,并且,假设定时器计数频率为8192KHz,解码256kbps速率FM0编码,则:
A段计数值为64;
B段计数值为128;
C段计数值为64;
D段计数值为96;
E段计数值为64;
F段计数值为96。
因此,本实施例中,将第一阈值确定为64*(1+10%)=70,将第二阈值确定为128*(1-10%)=115那么每段的解码过程包括:
计数值C2=64<70,即对应的解码数据为两个连续的半个0。
计数值C2=128>115,即对应的解码数据为两个连续的1。
计数值C2=64<70,,即对应的解码数据为两个连续的半个0。
计数值C2=96,由于70<C2=96<115,出现次数为1,为奇数,即对应的解码数据为1加半个0。
计数值C2==64<70,即对应的解码数据为两个连续的半个0。
计数值C2C2=96,由于70<C2=96<115,出现次数为2,为偶数,即对应的解码数据为半个0加1。
两个连续的半个0,即为一个0,从而,获得解码数据为“01101001”。
在上述实施例中,下降边沿有效,中断使能,但是本发明实施例不限于此,还可将上升边沿配置为有效,中断使能,具体应用不再累述了。
实施例二、本实施例中,定时器为PWM(Pulse Width Modulation,脉冲宽度调制)输入捕获模式。
MCU的PWM输入捕获模式是定时器不同输入捕获的一个扩展,同一个输入端被映射到定时器的两个跳变沿检测端口,即定时器对应两个寄存器。如图7所示的PWM输入捕获硬件,外部波形通过CH2进入到MCU中,在内部链接到CH1和CH2的跳变沿检测器。CH1和CH2跳变沿检测器极性相反,当CH1跳变沿检测器检测到对应跳变沿时,把定时器的值自动保存到CC1寄存器中;当CH2检测到对应的跳变沿时,把定时器的值自动保存到CC2寄存器中,并置中断标志位,以及在随后的定时器跳变沿清零定时器。如果开该定时器中断,则马上进入中断函数进行处理。
PWM输入捕获模式是通过对MCU定时器进行配置获得的,因此,在进行FM0编码数据的解码之前,还需进行配置,包括:将定时器配置为PWM输入捕获模式,并根据FM0编码数据的速率,以及设定的分频确定定时器的计数频率,其中,将与定时器对应的第二寄存器配置为第二跳变沿有效,中断使能;以及将与定时器对应的第一寄存器配置为第一跳变沿有效。
一般在将定时器配置为PWM输入捕获模式过程中,将定时器的时钟源配置系统时钟,并将定时器配置为向上计数,配置定时器输入通道1和2为PWM输入捕获方式。
而配置终端使能包括配置中断向量。
通过上述过程完成了对PWM输入捕获的配置后,PWM实际工作时序可参见图8,其中,定时器为PWM输入捕获模式,通道2(CH2)配置为上升沿有效,中断使能。
在要捕获波形A点(上升沿)时,CH2通道触发,把定时器的值0004保存到CC2寄存器中,置中断标志位触发中断,在定时器计数发生变化的D时刻点,定时器清零,即仍从0000开始。
在B点(下降沿)时,CH1通道触发,定时器值0002保存到CC1寄存器中;
在C点(上升沿)时,CH2通道触发,定时器值0004保存到CC2寄存器中,置中断标志位触发中断,在定时器计数发生变化的F点,定时器清零。
PWM输入捕获时,只在波形的上升沿产生中断,在中断中同时将CC1和CC2的值确定为待解码数据,并读入到缓存区中,用于解码。例如:在C点时,产生中断,同时将CC1的值0002,以及CC2的值0004确定为待解码数据,并读入到缓存区中。
由此可见,PWM输入捕获方式采集FM0编码数据的波形获得待解码数据的过程包括:通过PWM输入捕获采集到FM0编码数据的波形中第二跳变沿时,将第一寄存器的第一值,以及第二寄存器的第二值确定为待解码数据,并读入到缓存区中,其中,第一寄存器的值是通过PWM输入捕获采集到FM0编码数据的波形中第一跳变沿时定时器中的值,第二寄存器的值是通过PWM输入捕获采集到FM0编码数据的波形中第二跳变沿时定时器中的值,第二跳变沿与第一跳变沿相反。
通过中断方式将待解码数据存入缓存区中后,对FM0编码数据的解码的过程参见图9,包括:
步骤901:获取缓存区中的待解码数据,其中,该待解码数据是通过PWM输入捕获采集FM0编码数据的波形获得的。
由于待解码数据是通过中断方式存入缓存区中的,即将通过PWM输入捕获采集FM0编码数据的波形获得的待解码数据存入到缓存区。这样,在进行解码时,缓存区中已存储了待解码数据。
这里,可按照先进先出的方式从缓存区中获取待解码数据。当然,也可以按照别的顺序从缓存区中获取待解码数据,这样,在输出解码后的数据时也需按照设定的顺序。
步骤902:将获取的待解码数据与阈值进行比较,根据比较结果确定解码数据。
由于是通过PWM输入捕获采集所述FM0编码数据的波形获得待解码数据的,这样,只有采集到FM0编码数据的波形的特定跳变沿时,才获得待解码数据,因此,待解码数据中第二寄存器的第二值中的最小值应对应于两个连续的半个“0”对应的时长,而第二值中的最大值应对应于两个连续的“1”对应的时长。而待解码数据中第一寄存器的第一值中的最大值应对应于半个“0”对应的时长,而第一值中的最大值应对应于一个“1”对应的时长。因此,本发明实施中,先根据第二值确定解码数据,若不能根据第二值确定解码数据,再根据第一值确定解码数据。具体过程包括:
当待解码数据中第二寄存器的第二值小于或等于第三阈值时,确定解码数据为一个0;当第二值大于或等于第四阈值时,确定解码数据为两个1;当第二值在第三阈值与第四阈值之间时,将待解码数据中第一寄存器的第一值与第五阈值进行比较,根据比较结果确定解码数据,其中,第五阈值小于第三阈值,第三阈值小于第四阈值。
即先将第二值与第三阈值进行比较,若不能根据比较结果,确定出解码数据,则将第二值与第四阈值进行比较,若不能根据比较结果,确定出解码数据,最后,根据第一值确定解码数据,即将第一值与第五阈值进行比较,根据比较结果确定解码数据,其中,当第一值大于第五阈值时,确定解码数据为1加半个0;当第一值小于或等于第五阈值时,确定解码数据为半个0加1。
本发明实施例中,将第三阈值设定为两个连续的半个“0”对应的时长,为提供一个错误冗余,并增加一定的误差,例如,增加10%或5%的误差;将第四阈值设定为两个连续的“1”对应的时长,并减少一定的误差,例如,减少10%或5%的误差;将第五阈值设定在半个“0”对应的时长与一个“1”对应的时长之间,并可给予一定的错误冗余对应的误差。由此可见,本实施例中,第三阈值可与实施例一中的第一阈值相等,第四阈值可与实施例一中的第二阈值相等。
每个待解码数据的具体解码过程可参见图10,包括:
步骤1001:判断待解码数据中第二寄存器的第二值是否小于或等于第三阈值,若是,确定解码数据为一个0;否则,执行步骤1002。
步骤1002:判断待解码数据中第二寄存器的第二值是否大于或等于第四阈值,若是,确定解码数据为两个1;否则,执行步骤1003。
步骤1003:判断待解码数据中第一寄存器的第一值是否大于第五阈值,若是,确定解码数据为1加半个0;否则,确定解码数据为半个0加1。
当然,步骤1001与1002先后顺序可以对调,即可先判断第二值是否大于或等于第四阈值,再判断第二值是否小于或等于第三阈值,具体过程就不再累述了。
在本实施例的一个具体应用中,FM0编码数据的速率为256kbps进行配置时,定时器时钟源为系统时钟,时钟的分频为32,这样,将配置为PWM输入捕获模式,定时器的计数频率为256*32*2=16384khz。并配置,与定时器对应的第二寄存器为下降沿有效,终端使能,从而,与定时器对应的第一寄存器为上升沿有效。
PWM输入捕获时序图如图11所示,PWM输入捕获FM0编码数据的波形共有4种情况,分别是A、B、C和E,这里,D、F与A相同。
第二寄存器的第二值C2值有三种情况,分别是A段的C2、B段的C2、以及、C或E段的C2。第一寄存器的第一值C1值只有两种,分别是A或E段的C1,以及,B或C段的C1。PWM输入捕获外设在每一个下降沿时进入中断,在中断程序中,将CC1和CC2这两个寄存器的值作为待解码数据读入缓存区中,然后依据待解码数据中的这两个值进行解码。
由于,捕获的C2段数据有三种长度,C1段数据有两种长度,并且,假设定时器计数频率为8192KHz,解码256kbps速率FM0编码,则:
G段C2计数值为64,C1计数值为32;
H段C2计数值为128,C1计数值为64;
I段C2计数值为96,C1计数值为64;
J段C2计数值为64,C1计数值为32;
K段C2计数值为96,C1计数值为32;
L段C2计数值为64,C1计数值为32。
因此,本实施例中,将第三阈值确定为64*(1+10%)=70,将第四阈值确定为128*(1-10%)=115,将第五阈值确定为32*(1+10%)=35,以及64*(1-10%)=58之间任意一个数,这里,可讲第五阈值确定为(32+64)÷2=48,那么每段的解码过程包括:
C2=64<70,即对应的解码数据为两个连续的半个0。
C2=128>115,即对应的解码数据为两个连续的1。
70<C2=96<115,C1=64>48,即对应的解码数据为1加半个0。
C2=64<70,即对应的解码数据为两个连续的半个0。
70<C2=96<115,C1=32<48,即对应的解码数据为半个0加1。
C2=64<70,即对应的解码数据为两个连续的半个0。
两个连续的半个0,即为一个0,从而,获得解码数据为“01110010”。
在上述实施例中,第二跳变沿为下降沿,但是本发明实施例不限于此,可将第二跳变沿设定为上升沿。
根据上述FM0编码数据的解码方法,可构建一种FM0编码数据的解码装置,参见图12,获取单元100和解码单元200,其中,
获取单元100,用于获取缓存区中的待解码数据,其中,所述待解码数据是通过定时器输入捕获采集所述FM0编码数据的波形获得的。
解码单元200,用于将所述待解码数据与阈值进行比较,根据比较结果确定解码数据。
该获取单元100,用于当定时器配置为单寄存器输入捕获模式,并通过所述单寄存器输入捕获模式采集到所述FM0编码数据的波形中第一跳变沿或第二跳变沿时,将捕获寄存器获取的定时器中的值确定为所述待解码数据,并读入到所述缓存区中;
当定时器配置为PWM输入捕获模式,并通过PWM输入捕获采集到所述FM0编码数据的波形中第二跳变沿时,将第一寄存器的第一值,以及第二寄存器的第二值确定为所述待解码数据,并读入到所述缓存区中,其中,所述第一寄存器的值是通过PWM输入捕获采集到所述FM0编码数据的波形中第一跳变沿时定时器中的值,所述第二寄存器的值是通过PWM输入捕获采集到所述FM0编码数据的波形中第二跳变沿时定时器中的值,所述第二跳变沿与所述第一跳变沿相反。
该获取单元100,还用于将所述定时器清零。
当定时器配置为单寄存器输入捕获模式时,解码单元200具体用于:
当所述待解码数据的值小于或等于第一阈值时,确定解码数据为一个0;当所述待解码数据的值大于或等于第二阈值时,确定解码数据为两个1;当所述待解码数据的值在第一阈值与第二阈值之间时,根据所述待解码数据的值在由第一阈值与第二阈值组成的阈值空间中出现的次数,确定所述解码数据,其中,所述第一阈值小于所述第二阈值。
当所述待解码数据的值在第一阈值与第二阈值之间时,该解码单元200,具体用于将所述待解码数据的值在由第一阈值与第二阈值组成的阈值空间中出现的次数加1,获得更新后的次数;当所述更新后的次数为奇数次时,确定解码数据为1加半个0;当所述更新后的次数为偶数次时,确定解码数据为半个0加1。
当定时器配置为PWM输入捕获模式时,解码单元200,具体用于:
当所述第二值小于或等于第三阈值时,确定解码数据为一个0;当所述第二值大于或等于第四阈值时,确定解码数据为两个1;当所述第二值在第三阈值与第四阈值之间时,根据所述第一值确定解码数据,其中,所述第五阈值小于所述第三阈值,所述第三阈值小于所述第四阈值。
当所述第二值在第三阈值与第四阈值之间时,该解码单元200具体用于当所述第一值大于第五阈值时,确定解码数据为1加半个0;当所述第一值小于或等于第五阈值时,确定解码数据为半个0加1。
该装置还包括:配置单元,用于将所述定时器配置为单寄存器输入捕获模式或PWM输入捕获模式,并根据所述FM0编码数据的速率,以及设定的分频确定所述定时器的计数频率;其中,当所述定时器配置为单寄存器输入捕获模式时,将与所述定时器对应的捕获寄存器配置为第一跳变沿或第二跳变沿有效,中断使能;当所述定时器配置为PWM输入捕获模式时,将与所述定时器对应的第二寄存器配置为第二跳变沿有效,中断使能;以及将与所述定时器对应的第一寄存器配置为第一跳变沿有效。
本发明实施例中的FM0编码数据的解码方法可以用于利用FM0编码数据进行通信的系统中,例如:ETC中。当然,本发明实施例中有关名称前所述“第一”、“第二”仅用于区分各名称,其中,第一,第二可以调换。
本发明实施例还提供一种通信设备,例如OBU、RSU等,该设备包括如上所述的FM0编码数据的解码装置,该设备利用如上所述的FM0编码数据的解码装置对FM0编码数据进行解码。
本发明实施例中,获取缓存区中的待解码数据,并将所述待解码数据与阈值进行比较,根据比较结果确定解码数据,其中,待解码数据是通过定时器输入捕获采集所述FM0编码数据的波形获得的。由于采用定时器的输入捕获的方式获得待解码数据,这样,只有采集到FM0编码数据的波形的特定跳变沿时,才获得待解码数据,而并不是在采集到FM0编码数据的波形的每个跳变沿都获得待解码数据,从而,降低了采集数据的频率,降低了对硬件芯片的性能要求,进一步降低了解码过程中的资源成本。即使用PWM输入捕获解码,使得解码同样速率数据,可以使用相对便宜的芯片,而使用同样的芯片,可以解码更高速速率数据或更快速解码该数据。
并且,本发明实施例中,对待解码数据解码一次即可解码出两个数据,例如:两个连续的1,两个连续的半个0,一个1及半个0,或半个0及一个1。这样,提高了解码速率,即使用现有的PWM输入捕获硬件可实现高速的解码FM0编码数据的波形。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (13)
1.一种FM0编码数据的解码方法,其特征在于,包括:
获取缓存区中的待解码数据,其中,所述待解码数据是通过定时器输入捕获采集所述FM0编码数据的波形获得的;
将所述待解码数据与阈值进行比较,根据比较结果确定解码数据。
2.如权利要求1所述的方法,其特征在于,所述通过定时器输入捕获采集所述FM0编码数据的波形获得待解码数据,包括:
通过单寄存器输入捕获模式采集到所述FM0编码数据的波形中第一跳变沿或第二跳变沿时,将捕获寄存器获取的定时器中的值确定为所述待解码数据,并读入到所述缓存区中,所述第二跳变沿与所述第一跳变沿相反。
3.如权利要求2所述的方法,其特征在于,所述读入到所述缓存区中后,还包括:将所述定时器清零。
4.如权利要求2所述的方法,其特征在于,将所述待解码数据与阈值进行比较,根据比较结果确定解码数据包括:
当所述待解码数据的值小于或等于第一阈值时,确定解码数据为一个0;
当所述待解码数据的值大于或等于第二阈值时,确定解码数据为两个1;
当所述待解码数据的值在第一阈值与第二阈值之间时,根据所述待解码数据的值在由第一阈值与第二阈值组成的阈值空间中出现的次数,确定所述解码数据,其中,所述第一阈值小于所述第二阈值。
5.如权利要求4所述的方法,其特征在于,所述根据所述待解码数据的值在由第一阈值与第二阈值组成的阈值空间中出现的次数,确定所述解码数据包括:
将所述待解码数据的值在由第一阈值与第二阈值组成的阈值空间中出现的次数加1,获得更新后的次数;
当所述更新后的次数为奇数次时,确定解码数据为1加半个0;
当所述更新后的次数为偶数次时,确定解码数据为半个0加1。
6.如权利要求2所述的方法,其特征在于,所述获取缓存区中的的待解码数据之前,还包括:
将所述定时器配置为单寄存器输入捕获模式,将与所述定时器对应的捕获寄存器配置为第一跳变沿或第二跳变沿有效,中断使能,并根据所述FM0编码数据的速率,以及设定的分频确定所述定时器的计数频率。
7.一种FM0编码数据的解码装置,其特征在于,包括:
获取单元,用于获取缓存区中的待解码数据,其中,所述待解码数据是通过定时器输入捕获采集所述FM0编码数据的波形获得的;
解码单元,用于将所述待解码数据与阈值进行比较,根据比较结果确定解码数据。
8.如权利要求7所述的装置,其特征在于,所述获取单元具体用于:
通过所述单寄存器输入捕获模式采集到所述FM0编码数据的波形中第一跳变沿或第二跳变沿时,将捕获寄存器获取的定时器中的值确定为所述待解码数据,并读入到所述缓存区中,所述第二跳变沿与所述第一跳变沿相反。
9.如权利要求8所述的装置,其特征在于,
所述获取单元,还用于将所述定时器清零。
10.如权利要求8所述的装置,其特征在于,所述解码单元具体用于:
当所述待解码数据的值小于或等于第一阈值时,确定解码数据为一个0;当所述待解码数据的值大于或等于第二阈值时,确定解码数据为两个1;当所述待解码数据的值在第一阈值与第二阈值之间时,根据所述待解码数据的值在由第一阈值与第二阈值组成的阈值空间中出现的次数,确定所述解码数据,其中,所述第一阈值小于所述第二阈值。
11.如权利要求10所述的装置,其特征在于,当所述待解码数据的值在第一阈值与第二阈值之间时,所述解码单元具体用于将所述待解码数据的值在由第一阈值与第二阈值组成的阈值空间中出现的次数加1,获得更新后的次数;当所述更新后的次数为奇数次时,确定解码数据为1加半个0;当所述更新后的次数为偶数次时,确定解码数据为半个0加1。
12.如权利要求8所述的装置,其特征在于,还包括:
配置单元,用于将所述定时器配置为单寄存器输入捕获模式,将与所述定时器对应的捕获寄存器配置为第一跳变沿或第二跳变沿有效,中断使能,并根据所述FM0编码数据的速率,以及设定的分频确定所述定时器的计数频率。
13.一种通信设备,其特征在于,包括权利要求7至12任一所述的FM0编码数据的解码装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110407418.0A CN102522997B (zh) | 2011-12-08 | 2011-12-08 | Fm0编码数据的解码方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110407418.0A CN102522997B (zh) | 2011-12-08 | 2011-12-08 | Fm0编码数据的解码方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102522997A true CN102522997A (zh) | 2012-06-27 |
CN102522997B CN102522997B (zh) | 2015-09-02 |
Family
ID=46293811
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110407418.0A Active CN102522997B (zh) | 2011-12-08 | 2011-12-08 | Fm0编码数据的解码方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102522997B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102522996A (zh) * | 2011-12-08 | 2012-06-27 | 北京握奇数据系统有限公司 | 一种fm0编码数据的解码方法和装置 |
CN104009825A (zh) * | 2014-06-17 | 2014-08-27 | 南通大学 | 一种用于etc系统的fm0编码数据的解码装置 |
CN109922017A (zh) * | 2017-12-13 | 2019-06-21 | 航天信息股份有限公司 | 一种fm0编码数据的解码方法、装置及读写器 |
CN111245558A (zh) * | 2018-11-29 | 2020-06-05 | 北京聚利科技有限公司 | Fm0编码的解码方法、装置、设备及可读存储介质 |
CN111510151A (zh) * | 2020-04-27 | 2020-08-07 | 无锡大华锐频科技有限公司 | 一种fm0编码数据的解码方法、装置及读写器 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4027267A (en) * | 1976-06-01 | 1977-05-31 | International Business Machines Corporation | Method of decoding data content of F2F and phase shift encoded data streams |
EP0474908A1 (de) * | 1990-09-13 | 1992-03-18 | Siemens Aktiengesellschaft | Verfahren zum Auswerten von in biphasecodierten Impulsfolgen enthaltenen Informationsbits |
CN101223709A (zh) * | 2005-07-14 | 2008-07-16 | 富士通株式会社 | 数据解码方法、及应用该数据解码方法的数据解码装置 |
CN101571906A (zh) * | 2009-06-02 | 2009-11-04 | 北京大学深圳研究生院 | 一种rfid接收机的解码器和解码方法 |
CN102522996A (zh) * | 2011-12-08 | 2012-06-27 | 北京握奇数据系统有限公司 | 一种fm0编码数据的解码方法和装置 |
-
2011
- 2011-12-08 CN CN201110407418.0A patent/CN102522997B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4027267A (en) * | 1976-06-01 | 1977-05-31 | International Business Machines Corporation | Method of decoding data content of F2F and phase shift encoded data streams |
EP0474908A1 (de) * | 1990-09-13 | 1992-03-18 | Siemens Aktiengesellschaft | Verfahren zum Auswerten von in biphasecodierten Impulsfolgen enthaltenen Informationsbits |
CN101223709A (zh) * | 2005-07-14 | 2008-07-16 | 富士通株式会社 | 数据解码方法、及应用该数据解码方法的数据解码装置 |
CN101571906A (zh) * | 2009-06-02 | 2009-11-04 | 北京大学深圳研究生院 | 一种rfid接收机的解码器和解码方法 |
CN102522996A (zh) * | 2011-12-08 | 2012-06-27 | 北京握奇数据系统有限公司 | 一种fm0编码数据的解码方法和装置 |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102522996A (zh) * | 2011-12-08 | 2012-06-27 | 北京握奇数据系统有限公司 | 一种fm0编码数据的解码方法和装置 |
CN102522996B (zh) * | 2011-12-08 | 2015-07-01 | 北京握奇数据系统有限公司 | 一种fm0编码数据的解码方法和装置 |
CN104009825A (zh) * | 2014-06-17 | 2014-08-27 | 南通大学 | 一种用于etc系统的fm0编码数据的解码装置 |
CN104009825B (zh) * | 2014-06-17 | 2018-01-05 | 南通大学 | 一种用于etc系统的fm0编码数据的解码装置 |
CN109922017A (zh) * | 2017-12-13 | 2019-06-21 | 航天信息股份有限公司 | 一种fm0编码数据的解码方法、装置及读写器 |
CN109922017B (zh) * | 2017-12-13 | 2021-12-21 | 航天信息股份有限公司 | 一种fm0编码数据的解码方法、装置及读写器 |
CN111245558A (zh) * | 2018-11-29 | 2020-06-05 | 北京聚利科技有限公司 | Fm0编码的解码方法、装置、设备及可读存储介质 |
CN111510151A (zh) * | 2020-04-27 | 2020-08-07 | 无锡大华锐频科技有限公司 | 一种fm0编码数据的解码方法、装置及读写器 |
CN111510151B (zh) * | 2020-04-27 | 2023-08-18 | 江苏华锐频科技有限公司 | 一种fm0编码数据的解码方法、装置及读写器 |
Also Published As
Publication number | Publication date |
---|---|
CN102522997B (zh) | 2015-09-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102522996B (zh) | 一种fm0编码数据的解码方法和装置 | |
CN102522997A (zh) | Fm0编码数据的解码方法和装置 | |
CN103258428B (zh) | 一种基于etc设备实现交通状态采集的方法 | |
CN105277189B (zh) | 一种路线推送方法及装置 | |
CN105553796A (zh) | 一种基于手机定位的智能家居控制方法及系统 | |
CN105023428A (zh) | 路况信息评估方法及装置 | |
CN103886756A (zh) | 基于obu的高速公路路网运行状态检测方法 | |
CN102906800A (zh) | 建模和优化交通网络性能的系统及方法 | |
CN103150177A (zh) | 一种更新公交线路数据的方法、装置和系统 | |
CN104158699A (zh) | 一种基于优先级和分段的数据采集方法 | |
CN102509456B (zh) | 饱和流量确定方法和装置 | |
CN109118297A (zh) | 无人零售车投放控制方法、装置、电子设备和存储介质 | |
CN103268707A (zh) | 用于公交车辆优先通行的行人过街路段的信号调控方法 | |
CN105578258A (zh) | 一种视频预处理和视频回放的方法及装置 | |
CN108023846A (zh) | 检测fsk调制信号的方法、电路、设备及计算机程序产品 | |
CN103680110A (zh) | 一种全轨道16Kbps遥测数据多路径下传系统 | |
CN105070054A (zh) | 一种基于流式计算与时间窗动态优化的多源交通状态判别方法 | |
CN103218919A (zh) | 利用数字无线广播管理交通信号灯的方法及设备 | |
CN205263528U (zh) | 一种智能家居控制系统 | |
CN103559282A (zh) | 实时系统数据的去重方法和装置 | |
CN203070379U (zh) | 公路车辆无线自动收费装置 | |
CN104952243A (zh) | 通行时长分配方法及装置 | |
CN202887270U (zh) | 路边临时占道停车监管系统 | |
CN108062858A (zh) | 一种结合历史任务计算预计到达时间的算法 | |
CN206149292U (zh) | 一种通讯管理机 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CP01 | Change in the name or title of a patent holder |
Address after: 100015 Beijing city Chaoyang District Dongzhimen West eight Street No. 2 room Wanhong Yan Dong Business Garden Patentee after: Beijing Watchdata Limited by Share Ltd Address before: 100015 Beijing city Chaoyang District Dongzhimen West eight Street No. 2 room Wanhong Yan Dong Business Garden Patentee before: Beijing Woqi Data System Co., Ltd. |
|
CP01 | Change in the name or title of a patent holder |