产品描述
汕头西门子一级代理商DP电缆供应商
射频识别技术(RFID)是一种非接触式自动识别技术,它通过无线射频方式对目标加以识别并交换数据,主要应用于较短时间内在射频区域中识别一个目标。当多个电子标签同时到达射频有效区域时,标签会同时响应读写器指令并发送信号,导致阅读器不能正确接收数据,也不能正确识别标签,发生冲突。需要一种的防冲突(Anti-collision)算法,解决在识别多个电子标签时出现的数据冲突而导致阅读器无法正确识别标签的问题。
无源电子标签数字集成电路结构框图如图1所示,主要由通信、信息、存储以及控制等4个单元组成。其中防冲突模块位于通信信息单元,用于解决多个标签与阅读器进行数据交换所引起的数据冲突问题。
2 ALOHA算法
ALOHA算法足一种简便的防冲突算法,如图2所示。它既没有检测机制也没有恢复机制,只是以一定概率确保电子标签发出的信息准确地被阅读器接收。ALOHA算法仅用于只读阅读器,标签将数据(序列号)传输给阅读器,并且在一个周期中将数据不断发送给阅读器,时间只是重复时间的一小部分,使得在传输中产生相当长的间歇,因此,存在一定概率,使两个应答器可以在不同的时隙传输其数据,从而避免冲突。
从图2可以看到,阅读器发送读指令,处于射频区域的多个标签收到指令,立即在随后多个时隙中随机选择一个将信息上传给阅读器,并且标签在一个周期循环时隙内完成数据上传。增加时隙数量可降低RF终端发生冲突的概率,但是信道大部分时间将处于空闲状态,使得防冲突识别速度变慢。反之,减少时隙数量导致射频终端冲突明显增加。运用时隙算法的关键在于寻找一个有效的折衷方案,使得防冲突的性和速度满足要求。随着RFID系统复杂程度的加大,防冲突的性显著降低,冲突不可避免,所以这种没有检测恢复机制的抗冲突算法仅适用于简单系统。
3 二进制搜索防冲突算法
ALOHA算法由于效率低,实际RFID系统并未采用,而是采用加的二进制搜索算法。二进制搜索算法灵活,不会发生防冲突失败情况。对于N个应答器发生冲突的情况,多只需要N-1次防冲突循环就能准确识别出适合的应答器。二进制搜索算法的基本思想是阅读器判断出发送应答器的序列号产生数据冲突位置。然后强制命令在冲突位置发送信息为"0"或"1"的应答器退出冲突。当N-1个应答器退出冲突后信道则被剩下的一个应答器占有并由阅读器识别出。
为了防止数据冲突的发生,确定发生冲突的数据比特位的具体位置。这里使用Manchester编码如图3所示。这种编码通过电平的上升沿和下降沿表示高、低电平。上升沿为逻辑"1",下降沿为逻辑"0",不存在状态不变的情况。因此过程中检测到编码状态不跳变,则认为在过程中发生了冲突。两个发生冲突的数据比特位必定有一个为逻辑"0",另一个为逻辑"1",这样Manchester码的上升沿和下降沿相互抵消,使在持续时间内接收到状态持续不变的副载波信号,即出现状态不跳变,这在Manchester编码中是不允许的,可以肯定该处出现了冲突。因此可以用这种方法按位跟踪发生冲突的数据比特位的具体位置。
当应答器进入射频区域时,阅读器开始针对所有的应答器进行检测识别。其工作进程主要有如下五个状态:
POWER OFF(断电)状态:应答器尚未获得能量(未进入阅读器工作区),而处于断电状态,因此也不能发射副载波:
IDLE(空闲)状态:应答器进入阅读器工作区,电磁场获得能量,形成电压,进入空闲状态,同时能对已调制的信号解调,并识别来自阅读器的RE-QUEST命令和WAKE UP命令;
READY(就绪)状态:当接收到一个有效的REQA或WAKE UP命令时,进入就绪状态,在该状态采用防冲突方法,用UID(惟一标识符)从多张IC卡中选择出一张应答器,此时该张应答器就进入ACTIVE()状态;
ACTIVE()状态:在本状态完成本次应用(一次交易)所要求的全部操作;
HALT(停止)状态:阅读器完成一次交易后,处于停止状态。
应答器各状态间的转换图如图4所示。
4 改进后的防冲突算法实现步骤
这里采用SEL+NVB方式传输。SEL为指令码,其代码为93;NVB的前半字节表示字节数,后半字节表示冲突的位置。
改进后的算法具体实现步骤如下:
1步:阅读器分配SEL值,选定反冲突类型和级联级数;
2步:阅读器分配给NVB值'20'(定义了阅读器将发出命令迫使场内所有应答器响应完整的序列号);
3步:阅读器发出SEL和NVB命令;
4步:场内所有应答器以完整序列号响应;
5步:定场内的应答器都有的序列号,
则当多个应答器响应时,就会发生冲突。如果无冲突,6步到10步可以跳过。
6步:阅读器确认个冲突的位置X并记录下来。
7步:阅读器分配NVB值,其中NVB前半字节为该命令的字节数,后半字节为冲突X的位置。
8步:阅读器发出SEL和NVB,要求应答器中X位为'1'的作出响应。
9步:只有该部分序列号中X位为'1'的应答器才会发出它们序列号剩余的部分。
10步:若有冲突发生,6~9步重复执行。
11步:若无冲突发生,阅读器为NVB分配一个值'70'。
12步:阅读器发出SEL和NVB,要求应答器传送完整的序列号。
13步:应答器传送完整的序列号、闻读器收到后完成对该标签的识别工作。
改进后的防冲突算法流程图如图5所示。
5 改进后防冲突算法的与实现
改进后主要实现Manchester码和防冲突算法。Manchester码是一种适合传输的基带码型,是实现防冲突检测所采用的码型。Manchester编码可用两个不同相位的二进制码代替一个二进制码。而防冲突算法则是采用编写程序进行算法验证。实验证明,算法正确。
6 结束语
改进后的二进制防冲突算法能够将射频区域内的多个应答器准确地识别出来,并且使系统的传输数据量和传输时间大大减少,有效节省了传输信道,这是其他算法难以达到的。因此,改进后的二进制防冲突算法比其他算法准确、地解决射频识别系统中的标签应答数据冲突问题。
项目背景及概述
近年来,随着嵌入式应用越来越复杂,应用场合越来越多,特别是多媒体功能在各个领域的飞速发展,计算变得无处不在,从消费电子,网络通讯到工业控制和监控,大多数应用都需要高的数字信号处理能力。出于成本和设计难度的考虑,人们倾向于使用单颗芯片完成所有的工作,传统的DSP处理器和MCU处理器开始以多种形式进行融合。
1. 传统的MCU+DSP合作方案被集成到一颗芯片封装内;或者进一步实现为真正的异构多核,可以共享部分甚至全部外部设备。
2. 以SoC的形式为MCU加上基于固定硬件IP模块的数据处理能力,如一些编,针对一些固定标准的应用。
3. 随着嵌入式处理器频率突破500MHz并正在挺进1GHz,MCU和DSP平台开始真正的融合, DSP处理器的外设接口数量和控制能力逐步提高,而MCU的带宽和计算能力特别是软件多媒体处理能力也越来越强,两者之间不再有本质的区别。
以上三种融合的形式,实际上互相之间都有借鉴和交叉,从这里开始的未来发展,DSP和MCU之间,多核处理器的核与核之间,都不再有真正的界限。对于任何应用,对应的处理器都是灵活的软件计算能力、的硬件IP模块和相应外设的结合体,即所谓的“Convergent Platbbbb”(汇聚平台)。
这样的处理器平台,对于嵌入式软件提出了新高的要求,语言编译器要能够地利用硬件细节来优化编译性能,减少手工优化的工作量,保持软件的通用性;DSP算法开发人员不仅仅要了解硬件平台,也要考虑到软件平台的架构对算法实现和优化的影响,例如分离硬件相关部分和无关部分以适应操作系统的结构;而软件平台开发人员也要考虑处理器的细节以便进行系统优化,例如为多核或DMA通道的并行处理抽象出系统接口。硬件设计者、算法设计者、系统软件设计者之间的界限也在消失,复合型的嵌入式系统和团队才能适应底层硬件平台的变化。
在这个DSP/MCU/硬件IP模块三者融合的大趋势中,ADI公司的Blackfin系列处理器就是一个代表产品。从早的BF53x系列,到目前的增加了图像处理单元的BF54x系列和低功耗BF52x系列,以及双核的BF561,都是以同样的内核配置多样化的带宽和外设,针对不同的应用和市场。在这样的处理器上选择和设计软件,需要考虑的因素有很多。
1. 如何保持对处理器DSP特性硬件细节的大效率使用,以达到优算法性能和并行性。
2. 如何地保持软件通用性,避免过多的硬件相关代码和汇编代码。
3. 如何降低软件平台开发成本,是否适合采用开源操作系统或模块。
4. 系统是否需要实时性能,采用的软件平台是否提供这样的实时性保证。
这些因素有时候是互相矛盾的,需要考虑具体应用的特点和自身的资源做一个折衷的优化设计。
ADI公司为Blackfin的软件平台做了很多的努力,提供多样化的软件生态环境。Blackfin支持mClinux,VDK,mC/OSII,Nucleus等多种OS/RTOS,基于VDSP开发工具提供多种的音视频codec,硬件抽象函数库及驱动。在这个基于BF53x的智能监控系统中,我们希望地发挥芯片处理能力,达到的编码和智能算法能力,所以选择了一种RTOS mC/OSII及其网络协议栈作为操作系统平台。在小型的RTOS中,一般不区分用户态和内核态,访问系统硬件资源的开销小,中断和任务切换时间有实时保证,对内存的使用和分配也比较自由,这些特点决定了在RTOS下容易发挥Blackfin作为DSP处理器的性能,并能直接使用ADI提供的H.264编码库;但缺点是对比Linux这样开源资源比较丰富的操作系统,RTOS缺少某些现成的应用程序比如HTTP Server,需要多的开发投入或三方资源。
Blackfin IP Camera 系统架构
整个IP Camera系统主要包括音视频采集,智能视频分析或智能音频分析,音/视频编码,流媒体打包传输,系统控制等模块(如图1所示)。
基本系统为Blackfin的视频接口PPI同数字视频流输入相连,用来接收视频信号,而串行的SPORT接口可以连接音频输入,音视频数据以DMA通道传送到SDRAM;如果需要智能监控,可以根据需要插入不同的分析模块;然后软件编码器负责对实时采集进来的音视频进行压缩,并打成TS(Transport Stream)流进行传输。整个系统是数据流驱动的,图1中不同的输入,分析和编码模块可以根据需要来选择,每个模块的输入和输出的是符合标准的数据流,可以灵活地插入系统数据流的不同位置进行处理。一般的Blackfin单核芯片只能同时使用其中的一部分模块,但双核芯片如BF561或双片方案中,可以同时使用所有的模块。
视频采集和编码
Blackfin 系列DSP专门针对高速并行数据特别是视频数据集成了并行外围接口(PPI),在传统的数据总线的基础上增加了一条数据吞吐通道。
PPI接口不仅可以按照.601视频流的“硬件同步”模式工作,还能自动解码BT.656前同步码,从而允许无缝连接到多种视频源和图像传感器,与直接存储器存取(DMA)控制器配合使用,PPI可以在完整的视频帧信息中只读入有效的视频信息,或只有消隐区域。这样当不需要完整的视频帧时显著节省了带宽。另外,PPI可以忽略隔行的.656视频流的所有二场图像信息,从而提供了一种很有效的方法用于快速抽取输入信号。后,因为PPI本身就可以解.656视频流,所以它可以直接连接到流行的类似ADV7183A视频。
IP Camera适应主流的编码标准如H.264,MPEG-4等,ADI公司都提供的编码器软件。本项目采用H.264视频压缩标准,ADI的H.264编码器性能得到了大的优化,充分利用了片内L1 内存,数据通过DMA搬移,与处理器的运算并行执行。主要的特点有:支持YUV420和UYVY422 (CCIR-656) 视频输入格式,输出是以NAL为单位的基本视频流;对于H.264编码,支持Baseline Profile和一些Main profile的特性(Interlaced encoding, CABAC),BF53x能达到大实时1/2 D1,BF561支持D1实时,支持I和P帧,自适应CBR码率控制等。对于不同的应用,ADI H.264编码器的比特率是可调整的,低比特率下甚至可以在CDMA1x这样的低带宽应用中实现实时传输。
智能监控
目前监控市场的发展越来越趋向于智能化,各种视频或音频的智能分析算法得到产业化应用,如运动目标检测和跟踪,入侵检测,特殊声音检测和定位等等。Blackfin处理器从架构到指令集都对多媒体处理有很好的支持,有的视频处理指令,因此特别适合于实现灵活的多媒体智能分析算法。ADI公司推出了“Image Tool Box”智能软件包,针对智能监控算法中的一些常用和基本函数做了专门的优化,有很好的性能,可以加速上层算法的实现和优化。
一般智能分析的实现是针对未编码的媒体流进行分析,但也有利用编码器输出的算法。本项目因为直接使用ADI公司给定的编码库,因此使用前置的智能模块直接分析输入的媒体流,并输出。音视频的智能处理种类比较多,并在不断地改进,所以一般都用的DSP来实现。在Blackfin上目前有多种智能处理模块,如鱼眼矫正、运动物体检测及基于运动检测的上层算法如物检测、入侵检测、声检测和定位等等。根据智能模块的输出,系统控制和编码部分都可以做相应的智能处理,如勾勒运动物体边框,调高编码器分辨率,根据音源位置调整摄像头方向,等等。这些模块一般都有比较标准的输入输出接口,便于二次开发中的系统集成。
媒体流传输
IP Camera的主要用途就是通过网络实时传输远程的视频信息,本项目采用传输流(TS)通过UDP或上层的RTP协议来传输。传送流是根据ITU-T Rec.H.222.0 | ISO/IEC 13818-2和ISO/IEC 13818-3协议而定义的一种数据流,其目的是为了在有可能发生严重错误的环境下进行一道或多道程序的编码数据的传输和存储。TS主要应用于实时传送的节目,比如实时广播的电视节目,主要特点就是要求从视频流的任一片段开始都是可以立解码的。所以在接收端可以随时接入。目前视频领域还没有统一的媒体流标准,但采用TS over RTP/UDP这一标准有利于将来的系统整合。ADI的一些三方提供了完整的RTP协议栈产品,网络上也有一些开源的实例可供参考。
数据链路方面,对于压缩视频传输,一般的网络接口芯片都能满足带宽要求,但是在评估网络能的时候,处理器占用比也是一个非常重要的标准。BF53x系列中的BF537芯片有内置的10/100M 接口,并有的DMA 数据通道,因此传输和处理器占用比性能都非常好,在基于BF537的IP Camera上每1Mbps的网络只消耗约1%的处理器性能,例如传输 H.264 D1分辨率的监控码流,消耗处理器不到10MIPS。
软件架构
mC/OSII是Blackfin所支持的RTOS之一,在高速的Blackfin处理器上有很强的硬实时性能,OS中断响应时间约为110 cycles(600MHz下约0.18ms)。系统创建一个主任务(main task),负责系统的初始化和创建其他的模块任务。各模块任务立运行,处理自己的输入和输出数据流,模块之间的耦合程度较低,可以灵活的取舍。网络协议栈方面,Blackfin上也有多种选择,除了各商业RTOS配套提供的TCP/IP协议栈外,LWIP作为开源网络协议栈中的,也在Blackfin处理器上有移植版本。本项目采用了mC/OSII配套的mC/IP协议栈。
软件架构分为音视频采集,智能分析,编码打包和网络传输,系统控制等模块,每个模块负责不同级的任务,这非常有利于系统的集成和模块化设计。模块之间相互立,用信号量进行,模块之间的数据结构都设计成双缓冲或者多缓冲,保证I/O模块和运算模块并行执行。对于高系统负荷下的容错,程序和数据结构也考虑在内,偶然出现的丢帧现象不会影响系统的继续运行,并且向系统控制部分报告错误。
表1列出了系统中各模块的来源。
系统优化
在DSP系统中,一旦算法确定下来,实现过程中的优化思路一般也是固定的,利用编译器的一些优化开关和手段,其次对算法做分析,找出关键代码和数据,对关键部分做一些手工的调整,如改写成汇编等。但在实现一个包括多路输入输出,多种算法并行的完整的系统时,如何达到整体运行的优化,除了传统的算法优化外,还需要从系统的角度考虑一些因素。
系统带宽的大化和优化
在这样的一个复杂系统中,视频和音频数据的多路输入输出带来了冲突和延迟,对片外内存的使用效率有很大影响。Blackfin的SDRAM控制器支持多Bank的数据并行传输,因此我们要尽量把不同通道的I/O数据放在内存的不同Bank上。因此在音视频和网络数据结构的设计上,不光要保证的同步,还要利用Blackfin开发工具提供的特性把数据分散在不同的Bank上。
片内L1内存的分配
传统上,DSP处理器内部的L1高速内存可以直接访问,存放关键代码和数据,提高算法运行效率。而MCU的L1一般全部用来做Cache,软件不能直接控制。在Blackfin等处理器上,L1可以灵活地配置成Cache或者直接访问。在一个完整的系统中,我们要兼顾到各个模块和操作系统本身,L1内存一部分用作Cache,以保证整体cache命中率;另一部分作为SRAM用于算法的关键模块。这里需要做一些反复的调整和测试,来找出一个优化的L1配置方案,终目的是达到L1 内存使用效率(命中率)大。
大效率地使用DMA通道
越来越多的处理器为I/O接口提供的DMA通道,以减轻处理器做数据输入输出的负担。Blackfin上除了音视频接口的DMA外,还有的内存DMA通道。但是要优化地使用DMA,重要的是使用乒乓缓冲,使处理器和DMA通道流水化工作。在数据输入,算法内部的内存DMA,数据输出等每个环节上都要使用DMA和乒乓缓冲,才能保证系统效率。这需要每个驱动和软件模块都支持这样的数据结构和运行模型。
综合起来,新型处理器上往往集成了多种提的机制,软件系统优化的思路,就是保证系统总带宽(如多总线,多DMA通道)和总运算单元(如多核,多乘法器)的并行化、流水化,这需要开发人员从系统和应用不同的层面来保证。
性能分析
系统使用的RTOS带来的额外开销主要就是定时为10ms的Timer Tick,可以忽略不计。而由于BF537高的网络能,网络传输所占用的处理器时间也非常小。主要的处理器时间消耗在音视频的智能分析和编码上。
本项目可以运行在单核或双核Blackfin平台上,接收端用开源项目Video Lan Client(VLC)来接收并播放。对于单周期指令集的600MHz Blackfin内核,我们一般用600MIPS表示单核的总处理器能力,表2列出的部分系统模块消耗处理器能力也用MIPS表示。
从上面的性能列表可以看出,对于系统中可以使用的每一个模块,都可以有一个不同参数下的性能分析,在此基础上,使用不同性能的处理器,不同的模块,不同的编码格式,甚至不同的帧率。我们可以针对各种应用组合出不同的系统,实现产品的差异化。比如我们可以运行智能处理算法,只在必要的时候启动编码模块发送关键部分的媒体流;也可以平时以低码率、低帧率运行编码模块,由智能模块动态控制提高关键帧的码率和帧率。这样的智能监控系统,会加实用化,地减轻人工负担。
小结
未来嵌入式处理器的发展,以高计算性能、硬件IP协处理、多核、面向应用等特点,软件平台和软件开发人员需要适应这样的变化和特点,正向着智能化方向快速发展的监控领域,正需要这样的软硬件平台提供支持。Blackfin处理器家族作为新一代处理能力和控制能力融合处理器的代表,需要设计新完善的软件平台与其相配合,才能充分发挥其性能和灵活性,既能快满足市场的需要,又能保证各厂商之间的区别和。同时ADI公司及其合作伙伴提供多样化的工具和支持,保客户能够、地开发出市场需要的各种嵌入式产品。
采样日期(2005年) | 甲引风机日耗电量(万kwh) | 乙引风机日耗电量(万kwh) | 甲、乙引风机总日耗电量(万kwh) | 机组日发电量(万kwh) |
11月5日 | 1.366 | 1.368 | 2.734 | 465.5 |
11月6日 | 1.368 | 1.345 | 2.713 | 472.61 |
11月7日 | 1.332 | 1.440 | 2.772 | 480.2 |
11月8日 | 1.368 | 1.368 | 2.736 | 478.54 |
11月9日 | 1.398 | 1.368 | 2.766 | 472.3 |
11月10日 | 1.404 | 1.344 | 2.748 | 480.8 |
11月11日 | 1.368 | 1.405 | 2.773 | 471.6 |
一周合计 | 9.604 | 9.638 | 19.242 | 3321.55 |
采样日期(2005年) | 甲引风机日耗电量(万kwh) | 乙引风机日耗电量(万kwh) | 甲、乙引风机总日耗电量(万kwh) | 机组日发电量(万kwh) |
11月15日 | 0.99 | 1.08 | 2.07 | 461.52 |
11月16日 | 0.96 | 1.02 | 1.98 | 471.6 |
11月17日 | 0.99 | 1.05 | 2.04 | 481.32 |
11月18日 | 0.96 | 0.99 | 1.95 | 475.2 |
11月19日 | 0.96 | 1.05 | 2.01 | 475.92 |
11月20日 | 0.96 | 0.99 | 1.95 | 465.48 |
11月21日 | 0.96 | 1.05 | 2.01 | 478.3 |
一周合计 | 6.78 | 7.23 | 14.01 | 3309.34 |
产品推荐