硬件实现

2024-08-19

硬件实现(精选11篇)

硬件实现 篇1

0引言

实现电信网、广播电视网和互联网的“三网融合”, 达到三网互联互通、资源共享, 对于促进信息和文化产业发展, 提高国民经济和社会信息化水平等都具有重要意义。下一代广播电视网 (Next Generation Broadcast, NGB) 的终极目标是向用户提供高清、标清、数字视音频、高速数据接入和话音等“三网融合”服务, 而如何基于现有有线电视网络进行宽带双向化改造, 提高接入网带宽, 发挥有线电视网频带宽、成本低、易普及的优势, 是NGB建设的关键所在。

新型同轴电缆宽带接入系统HINOC是基于有线电视网带外信道的宽带接入解决方案。在光纤到楼 (Fiber To The Building, FTTB) 逐渐推广的基础上, HINOC利用小区楼道和户内已经敷设、分布广泛的有线电视同轴电缆, 仅通过添加相关调制解调器设备, 而不对线路做任何改造来实现高速数据业务的双向传输, 为最后一百米的宽带接入提供了一种便捷实用的新型解决方案。

在HINOC系统中, 如何合理的设计硬件体系结构, 使其既能达到性能指标, 又能便于低成本的芯片化, 对于后续的工程化开发具有重要的意义。本文将针对HINOC系统的应用场景和功能需求, 提出HINOC系统硬件体系结构, 并对其中主功能模块的实现方案进行介绍, 从而为进一步设备开发打下基础。

1 HINOC系统应用场景及其硬件体系结构

作为一种新型的同轴电缆接入技术, HINOC使用16MHz频带进行以IP为主的数据信号业务传输。图1给出了一个典型HINOC网络解决方案。如图1所示, 只需在楼道的光节点处和屋内用于连网的终端处添加缆桥 (HINOC Bridge, HB) 和缆猫 (HINOC Modem, HM) , 即可将原有的有线电视信号与采用HINOC技术调制转换后的以太网数据信号进行混合传输, 从而实现基于有线电视同轴网络的IP包传输, 达到单用户最高100Mbps以上的高速数据传输。

HINOC网络协议栈为分层结构, 如图2所示, 自下而上依次为PHY层 (HIPHY) 、MAC层 (HIMAC) 和高层。MAC层又可分为公共部分子层 (CPS) 和汇聚子层 (CS) , 实现HINOC网络中的媒质接入控制和业务适配功能, 其中CPS实现MAC层的接入控制和信道分配等核心功能, CS实现MAC层核心功能与高层功能的适配。PHY层规定了传输信号的帧结构、信道编码以及调制技术。

根据HINOC系统的应用场景, 由于其主要支持以太网类型业务, 其系统实现可以采用如图3所示的硬件体系结构。其不同部分的功能分析如下:

1.介质访问控制 (Media Access Control, MAC) 部分:MAC部分主要有两个对外接口, 主机控制接口 (Host interface) 与以太网的物理层接口 (Ethernet MII接口) 。对于主机控制接口, MAC部分需要执行上层控制端传递的控制信息, 实现HINOC系统的终端自动上线配置、远程配置、全网管理、QoS保证、优先级设定、流量管理、组播与广播控制等功能[1]。而对于以太网的MII接口, MAC部分需要完成数据从以太网帧格式到HINOC所规定帧格式的转换, 即实现以太网帧与HIMAC (HINOC-MAC) 帧之间的解包和打包。此外, 由于业务的需要, 在MAC部分还需要对以太网数据流进行相应的处理, 比如实现IGMP/MLD/DHCP分组的重定向, 区分不同数据业务流的优先级, 实现VLAN TAG的添加、删除和修改, 实现COS/TOS的修改, 根据黑白名单控制分组的转发和丢弃等等。

2.物理层 (PHY) 部分:物理层部分的主要功能是完成从逻辑上HIMAC帧格式到同轴电缆上实际可以传输信号的转换。它采用正交幅度调制 (QAM) , 并根据同轴电缆不同的噪声、衰减、反射等情况自适应地使用QPSK到1024QAM的调制格式。为了避免由于多径效应引起的码间串扰问题, 提高信道的利用率, 在物理层部分选用正交频分复用 (OFDM) 技术传输数据。同时在纠错码方面, 物理层采用高编码效率、低实现复杂度的 (508, 472) 和 (504, 432) BCH截短码。所以物理层可以在16MHz的信道带宽上实现最高100Mb/s的物理层传输速率, 其有效带宽的频率利用率可达到7bit/s/Hz[2]。

3.时钟生成 (Clock generation) 部分:时钟生成部分主要负责给各个功能模块提供时钟, 其中由于MAC部分和物理层部分用到的时钟不尽相同, 特别是CPU使用的频率较高, 所以可以使用锁相环 (PLL) 输入的低频信号倍频。

4.模拟前端 (Analog front-end, AFE) 部分:AFE部分的主要功能是实现数字信号与模拟信号之间的转换以及线路上模拟信号的发送和接收。其中由于物理层需要完成最高1024QAM的调制, 所以对于ADC和DAC的位数精度要求较高。同时为了适应同轴电缆网络不同衰减特性, AFE部分必须能够提供可控增益的大功率驱动发送和高增益接收。

5.切换开关、低通滤波器及混频器 (Switch+LPF+混频器) :由于一般同轴电缆是单线接入, 且HINOC系统采用TDMA方式通信, 所以一个收发切换开关被放置于AFE的前端实现收发控制。为了减少发射端对线路上其他频段的干扰、滤除接收时不必要的带外噪声, 输入输出口需要使用一个低通滤波器。此外, 系统还需要加入混频器将发射或接收的信号调整到合适的频段。

从以上的模块划分和功能分析中, 可以看出由MAC和PHY组成的主功能模块在HINOC系统的体系结构中占有非常重要的地位。下面将着重分析主功能模块的具体实现方案。

2 HINOC SOC的一种低成本实现方案

如图4所示, 目前HINOC系统主功能模块的实现方案为低性能CPU+硬件协处理器 (HIMAC) +物理层。为了降低对CPU处理能力的要求, 在具体实现中将MAC层功能较为确定的部分剥离出来, 采用硬核的形式进行固化, 形成硬件协处理器, 这样MAC部分的功能由低性能CPU和硬件协处理器来共同完成。在此实现方案中, 以太网帧的打包和解包采用固化EMAC处理器来协助完成。对于以太网数据的流分类、流过滤、流标记、QoS等方面的需求, 都利用一个流分类模块处理, 其规则表可以通过CPU配置以达到灵活处理。由于大量的以太网数据从硬件协处理器流过, 而CPU仅仅处理简单的信令信息和实现功能配置, 该方案使得HINOC系统对于CPU处理能力的要求就大大降低了。同时由于硬件协处理器是可以固化的, 它对于HINOC系统的低成本实现是很有好处的。

在物理层功能控制方面, CPU可以通过硬件协处理器的总线仲裁模块读写物理层的接口区域, 从而实现对物理层相应功能的配置和控制。CPU与物理层之间的接口采用同步静态RAM时序, 通过对物理层接口中三大区域 (数据区、参数区和控制寄存器区) 的配置, CPU可以调节物理层各个相关参数并控制物理层执行相应的收发动作。与此同时CPU还需要完成节点的接纳和链路维护、信道预约与分配、分组调度算法等工作。

根据HINOC系统物理层的性能指标以及物理层与MAC层交互的需求, 对HINOC系统物理层的硬件总体设计框架如图5所示。

HINOC系统的物理层可分成4大模块:

1.HIPHY-HIMAC接口:HIPHY-HIMAC接口负责实现HINOC系统中物理层和MAC层之间信息的交互, 包括收发的HIMAC帧缓冲数据、信道估计参数、控制指令等。本模块采用静态同步RAM时序设计, 将MAC层侧看做CPU的外设RAM, 便于CPU的控制。

2.HINOC发射机:发射机负责将接口发送数据RAM区的HIMAC帧数据转换为同轴电缆线路上可以传输的HINOC信号。主要功能包括前向纠错编码、信道参数的预均衡、OFDM调制、加同步头组帧等等, 最后调制完成的HINOC信号通过DAC转换成模拟信号发送出去。

3.HINOC接收机:接收机负责将ADC采样接收的同轴电缆HINOC信号解调成HIMAC帧并存储到接口接收数据RAM区。其主要功能包括信道参数估计 (包括信道时偏、频偏、信道响应等性能参数) 、OFDM解调、接收数据的信道均衡、前向纠错解码等等。

4.HINOC总控模块:总控模块负责控制HINOC系统物理层的整体工作流程, 其中包括系统时钟的维护、HIMAC收发控制指令的解析、射频模拟端的收发切换控制、对MAC中断反馈维护等。

3结论

本文针对HINOC系统的典型应用场景, 分析了其系统实现的硬件体系结构和各个部分的功能。对于HINOC系统中的主功能模块, 详细介绍了一种采用低性能CPU+硬件协处理器+物理层的实现方案, 并对各个部分的结构和功能进行了介绍。基于CPU+硬件协处理器来实现MAC部分的方案, 由于其将原有MAC部分可以固化的功能硬件化, 从而大大降低了对于CPU的要求, 可以低成本的实现原有MAC功能。通过各个部分的详细介绍可知, MAC层的设计能够到达媒质接入控制和业务适配技术方案及对物理层的规划控制的要求, 物理层硬件结构设计能够很好的达到HINOC物理层传输模式技术方案以及与MAC层交互的要求, 这为后一步的工程化实现打下了坚实的基础, 采用本文介绍硬件体系结构和SOC实现方案对于未来的HINOC系统实现是较为合适的。

参考文献

[1]崔竞飞等.自主创新的同轴电缆双向接入技术HINOC.世界宽带网络, 2010 (6) :60-64.

[2]国家广播电影电视总局广播科学研究院, 北京大学, 西安电子科技大学.高性能同轴电缆接入网 (HINOC) 物理层传输模式及媒质接入控制协议 (面向NGB电缆接入技术的建议方案) .2010.

[3]北京大学信息科学技术学院HINOC项目组.HIPHY HIMAC Interface and Programming Guideline V4.17.2010 (10) .

硬件实现 篇2

摘要:随着计算机技术、多媒体和数据通信技术的发展,计算机视频的应用越来越广。但视频通常由于数据量巨大,应用受到不少限制。为解决视频数据的存储和传输,唯一途径就是对视频数据进行压缩。结合目前实际需求,给出了一种基于PCI总线的MPEG-I压缩卡的软件、硬件实现方案。

关键词:PCI总线WDM驱动MPEG-1压缩卡

随着计算机技术、多媒体和数据通信技术的高速发展,人们生活水平的提高,对计算机视频的需求和应用越来越多,如视频监控、视频会议、计算机视觉等。计算机视频提供给人的信息很多,但是视频的数据量很大,不利于传输和存储,使其应用受到不少限制。为解决视频数据的存储和传输,唯一途径就是对视频数据进行压缩。

目前常见的视频压缩方法有MPEG-1、MPEG-2、MPEG-4、H.261、H.263等。考虑压缩技术的成熟度和该压缩卡的主要用途,本文采用MPEG-1作为压缩标准,研制了基于PCI总线的MPEG-I压缩卡。该卡适用于视频监控、视频会议等多种应用场合。该卡加上一台主机、摄像头和软件可构成一个完整的视频采集压缩系统。

1系统特点

(1)支持BNC、RCA、S-VIDEO视频接口;

(2)支持PAL和NTSC制式;

(3)可对视频实时预览,最大分辨率可达720×576×32;

(4)可对声音进行同步监听;

(5)可对音、视频信号进行MPEG-I压缩,生成MPEG文件和VCD文件;

(6)用户可编程MPEG-1编码设置,可支持CBR和VBR;

(7)可一机多卡同时工作;

(8)可从动态影像中捕获单帧,生成JPG和BMP文件;

(9)支持Win98/Win2000。

2系统硬件设计

2.1系统组成

该系统主要由视频解码、音频解码、压缩核心和PCI接口等组成,其总体框图如图1所示。

2.2视频解码设计

视频解码部分主要完成模拟视频到数字视频的处理,以供后面预览、压缩用。视频解码芯片常用的有SAA7110、SAA7113和SAA7114等。本方案中采用Philips公司的SAA7114。SAA7114有六路模拟输入,内置模拟源选择器可构成6×CVBS、2×Y/C?2×CVBS、1×Y/C和4×CVBS;两路模拟预处理通道,内有抗混迭滤波器;CVBS或Y/C通道含完全可编程静态增益控制或自动增益控制功能,对CVBS、Y/C通道可进行自动钳位控制;能自动检测50Hz/60Hz场频,并可自动在PAL和NTSC制式进行切换;能将PAL、NTSC和SECAM信号解码及模数变换得到符合ITU-601/ITU-656的数字电视信号。该芯片是目前视频解码芯片中接收视频源的宽容性及视频解码图像质量最好的一种。其通过I2C接口,进行初始化设置。

本系统采用ImagePort作为数字视频输出端口,数字视频格式采用ITU-656?AI11(PIN20)作为BNC/RCA输入脚,AI12、AI22作为S-VIDEO输入脚。

图2SAA7146A方框图

2.3音频解码设计

音频解码的数据一部分提供给SAA7146A作声音监听用,另一部分用于压缩。考虑到成本,本系统采用BURR-BROWN公司的PCM1800E。该芯片是双声道单片ΔΣ型20位ADC?单+5V电源供电,信噪比为95dB(典型值),动态范围95dB(典型值),内嵌高通滤波器,支持四种接口方式和四种数据格式。其采样频率为32kHz、44.1kHz和48kHz可选。

本系统采用从模式,20位I2S数据格式。主时钟由SAA7114提供。

2.4MPEG-1压缩部分设计

本系统中MPEG-I压缩芯片选用ZAPEX公司的SZ1510。该芯片基于TI的TMS320C54xDSP内核,能对ITU-601/ITU-656数字电视信号和PCM音频流进行MPEG-1实时压缩,可生成多种流,如音频基本流、视频基本流、音视频复合流等。

该芯片外接27MHz晶振,可支持多种主机接口,可工作在复用或非复用、Intel或Motorola类型总线。通过输入管脚HCONFIG?1:0?和SysConfig寄存器可设置成六种总线接口类型:Intel8051

类型的数据/地址复用的8位总线、Motorola类型的数据/地址复用的8位总线、Intel8051类型的非复用的8位数据总线、Motorola类型的非复用的8位数据总线、Intel8051类型的非复用的16位数据总线和Motorola类型的非复用的16位数据总线。支持I2S声音接口。

本系统中采用Intel8051类型的非复用的16位数据总线。

2.5PCI接口部分设计

本系统中PCI接口芯片选用SAA7146A,该芯片并不是通用的PCI接口芯片,而是一个多媒体桥(MultimediaBridge)。方框图如图2。该芯片符合PCI2.1规范。它有八个DMA通道,三个视频,四个音频,一个DEBI(DataExpansionBusInterface)。还具有两路视频通道,可对视频数据进行缩放,一路可无级缩放HPS(HighPerformaceScaler?,其纵向可达1:1024、横向可达1:256;另一路有级缩放BRS(BinaryRatioScaler?支持CIF和QCIF格式。

音频接口以I2S为基础,通过编程控制以支持MSB-FIRST的不同格式及不同的时序格式。

本系统中该部分主要实现功能如下:

(1)通过DEBI接收SZ1510产生的MPEG-1数据,传输到内存;

(2)通过视频接口,接收SAA7114输出的视频解码信号,并进行亮度、色度、饱和度的控制,并实现无级缩放功能?实现视频预览功能;

(3)通过音频接口,接收PCM1800E输出的PCM编码信号,传输到内存,实现声音监听功能;

(4)提供符合PCI2.1规范的接口,将板上数据传输到主机内存。

3软件设计

软件设计主要包括驱动程序设计和应用层的API设计。驱动程序主要负责与硬件打交道,应用层API主要负责与驱动程序接口。由于设计了应用层的API,应用程序可很容易在上面进行开发。

3.1驱动程序设计

为了支持Windows2000和Windows98?采用WDM?WindowsDriverModel?驱动程序。WDM作为微软的最新驱动程序模型与传统的Win3.x和Win95使用的VxD驱动完全不同。WDM可支持电源管理、自动配置和热插拔等。WDM驱动的设计可以采用DriverStudio?DS?、Windriver、DDK?DriverDeviceKit?等。本系统驱动采用Windows2000DDK借助VC6.0设计。

3.1.1MPEG-I压缩部分

在驱动中,重置SZ1510后,就可以装载相应工作模式的微码;根据需要,设置好相应寄存值后就可以启动SZ1510对视频数据进行MPEG-1编码。每当产生的压缩数据超过SZ1510内部的FIFO门限后,SZ1510产生相应中断,内核调用中断例程,在中断例程中调用中断延迟例程?DPC?,在中断延迟例程中接收产生的`压缩数据。SZ1510提供两种方式提取数据,一种用I2C总线接口方式,另一种用DEBI方式。

在本系统中,采用DEBI进行压缩数据的传输。考虑到压缩数据产生的速度,本系统开了32页大小的缓冲区,在中断延迟例程中填充该缓冲区。每当填满8页大小后,产生一个事件通知应用层进行数据读取。通过这种方式,可以避免压缩数据的丢失。

其流程图如图3所示。

在驱动中,压缩数据的提取方式将极大地影响生成MPEG文件的质量。如果处理不当,将导致马赛克、跳帧等现象。

3.1.2驱动程序中用户缓冲区的访问

驱动程序访问用户内存主要通过缓冲I/O和直接I/O。缓冲I/O?I/O管理器创建一个内核模式拷贝缓冲区,并把用户缓冲区的内容拷贝到该缓冲区中,并在IRP首部的AssociateIrp.SystemBuffer域中存储该非分页内存地址。驱动程序可简单地读写该块内存。直接I/O,I/O管理器为输入数据提供一个内核模式拷贝缓冲区,对输出数据提供一个内存描述符(MDL)。为了使用缓冲I/O或直接I/O?在创建设备时,必须设置设备对象的Flags域中的DO_BUFFERED_IO标志位来使用缓冲I/O或设置DO_DIRECT_IO标志位来使用直接I/O。

在本驱动中由于缓冲I/O和直接I/O都被使用,DO_BUFFERED_IO标志位和DO_DIRECT_IO标志位都被设置。

在定义IOCTL码中,对缓冲I/O使用METHOD_BUFFEERED?对直接I/O使用METHOD_OUT_DIRECT。

3.2应用层API设计

应用层对驱动程序的访问通过调用Win32I/O函数(如ReadFile、WriteFile和DeviceIoControl)访问。当应用层调用Win32I/O函数

以请求I/O后,该请求由内核的I/O系统服务接收,I/O管理器对该请求构造合适的IRP包,并将其传给驱动程序栈,IRP在栈中进行传递,传到驱动程序进行处理,并将结果返回给应用程序。

通过应用层API,在其上面可进一步开发各类应用程序。

声控病人翻身床的硬件设计实现 篇3

【关键词】单片机 SPCE061A 翻身床 语音识别

前言:随着计算机、信息技术、微电子快速发展,智能化技术的研究发展速度也越来越快,智能度越来越高,应用范围也得到了极大的扩展。电子技术在医疗器具的应用也很广泛,智能化的设计使得医疗器具更加省时、方面。声控病人翻身床就是智能化技术中的一个很典型的例子。在护理重病或者瘫痪病人时,需要给病人经常的翻身,使身体受压部分得到血液循环,从而避免病人因为长期卧床发生机体组织坏死,患上褥疮。这对于护理人员来说并不是很容易。现有的病人护理翻身床大多是通过摇杆,或者按键来控制,这同样也很费时费力。而本文设计的病人翻身床通过识别用户的的语音指令,依据指令做出相应的翻转动作,整个设计环节简明合理,具有广阔的发展前景。

一、总体电路设计

该系统的声控系统是基于凌阳SPEC016A包括语音的输人、语音的识别、语音的输出及翻身床体控制部分,主要实现人机语音交流及控制。

当使用者说“倾斜翻转”床体发出“滴”声,指示灯发亮,床体的左上支撑板和右上支撑板缓慢翻转,翻转角度合适时,当使用者说“停”,翻转停止。

当使用者说“右侧翻转”床体发出“滴”声,指示灯发亮,床体的右上支撑板和右下支撑板缓慢翻转,翻转角度合适时,当使用者说“停”,翻转停止。

当使用者说“左侧翻转”床体发出“滴”声,指示灯发亮,床体的左上支撑板和左下支撑板缓慢翻转,翻转角度合适时,当使用者说“停”,翻转停止。

当使用者说“倾斜放平”床体发出“滴”声,指示灯发亮,床体的左上支撑板和右上支撑板缓慢向下翻转,直到床体平整。

当使用者说“右侧放平”床体发出“滴”声,指示灯发亮,床体的右上支撑板和右下支撑板缓慢向下翻转,直到床体平整。

当使用者说“左侧放平”床体发出“滴”声,指示灯发亮,床体的左上支撑板和左下支撑板缓慢向下翻转,直到床体平整。

总体设计原理如图1所示:用户语音输人,即通过控制话筒将语音信号转换成电信号输人SPCE016A内。SPCE016A将其放大,调用SPCE016A相关语音处理函数,SPCE016A会将电信号转换成数字信号;语音识别,然后再调用SPCE016A相关语音识别函数,处理语音信号,进行识别;语音输出,将处理后的语音进行功率放大,然后播放出来;翻转床体控制,依据SPCE016A的控车指令,驱动翻身床进行翻转控制。

图1

二、硬件电路设计

病人翻身床硬件驱动电路如图2所示:

单片机SPCE016A控制语言信号从管脚IOAO-12输出到驱动芯片E298中,E298把语言控制信号进行放大,向负载直流电机B1-4提供适当的功率,供给病人翻身床进行翻转。其中稳压芯片AMS1117保证了E298的逻辑电平为+5 ;稳压管D1-D8、D13-D20保证输出线路上的电压供电机使用。床体的一端对称设置有能够侧翻和倾斜旋转的左上支撑板和右上支撑板,床体的另一端对称设置有够侧翻和倾斜旋转的左下支撑板和右下支撑板,左上支撑板和右上支撑板连接B1、B2转动电机,左下支撑板和右下支撑板连接B3、B4转动电机,侧翻角度为0°~50°前后倾斜翻转角度为0°~25°四个转动机均连接芯片L298。

床体倾斜翻转时,指示灯D11和D12亮,后左电机B1与后右电机B2正转,床体的左上支撑板和右上支撑板向上倾斜,病人的上身得到支撑起来;床体倾斜放平时,后左电机B1与后右电机B2反转,指示灯D9、D10发亮,床体的左上支撑板和右上支撑板缓慢向下翻转,直到床体平整;

床体左侧翻转时,后左电机B1与前左电机B4正转,指示灯D11和D24发亮,床体的左上支撑板和左下支撑板缓慢向上翻转,病人的左侧身体得到支撑翻转;床体左侧放平时,B1与B4反转,指示灯D9和D22发亮,床体的左上支撑板和左下支撑板缓慢向下翻转,直到床体平整;

床体右侧翻转时,后右电机B2与前右电机B3正转,指示灯D12和D23发亮,床体的右上支撑板和右下支撑板缓慢向上翻转,病人的右侧身体得到支撑翻转;床体右侧放平时,指示灯D10和D21发亮,床体的右上支撑板和右下支撑板缓慢向下翻转,直到床体平整。

图2

三、结论

语音信号处理技术随着嵌入式技术的不断发展而不断得到广泛的应用,本文提出的智能声控病人翻身床,无论在硬件设计还是在软件开发上都比较占优势,翻转角度可任意调整,工作运行比较稳定,能耗小,输出的音质清晰,充分展现了智能化和人性化相结合的特征,在医疗器具方面有很大的实用价值。随着语音识别技术和嵌入式技术的不断发展,医疗、教育、工业、办公等技术领域对语音操控终端的需求也会不断上升,而本文设计电路简单,成本低且易于实现,具有很强的操作性,具有很远大、广阔的发展前景。

参考文献:

[1]郝宁生,陆 英;一种基于PIC16C73单片机的电机测控系统[J];微计算机信息;2002年08期

[2]张粉绒,常翠英,郭爱英;我国人口老龄化与老年保健的研究进展[J];现代护理;2002年03期

作者简介:

蔡刚(1990.3-),贵州省织金县,硕士研究生,专业:信息与通信工程。

硬件实现 篇4

中频模拟信号经过A/D采样后将数字信号送入FPGA进行基带数字信号处理,在FPGA和DSP内完成数字下变频、捕获、码跟踪、载波跟踪等过程,最终实现卫星信号的解扩解调。在实际应用中,需要设计多个通道对多颗卫星同时进行跟踪,才能获得解算结果。

1 硬件设计

硬件平台用FPGA芯片和DSP芯片作为主处理器,主处理器之间可以互相通信。经过AD采样后的信号直接进入FPGA,此后所有对信号的处理均由软件来实现。如此可以充分利用FPGA和DSP的重复烧写及在线调试能力,尽量减少对其他硬件的依赖程度,从而增加了平台的灵活性。另外,每片DSP都外接了Flash和SDRAM。由于Flash掉电数据不会丢失,可以在Flash内保存程序及数据,而外接的SDRAM是DSP的扩展Ram,当DSP运行大型程序以致DSP的内部Ram不够用时,可以将程序放到外接的SDRAM内运行。

2 软件设计

信号处理模块框图如图1所示,捕获模块和通道的跟踪环路占用FPGA和DSP。整个跟踪环路包括五个部分:FPGA内的下变频模块,通道模块,通道控制器和DSP接口模块,以及DSP内的码环、载波环。

AD采样后的信号首先进入数字下变频模块,下变频输出的基带I/Q信号直接进入捕获模块和各个通道(跟踪模块)。各个通道的数据通过DSP接口被送到DSP, DSP和FPGA之间的数据传输通过中断的方式来完成。DSP完成鉴频鉴相及滤波运算后将结果反馈回FPGA。图中各个通道通过通道控制器共用一个捕获模块。

3 多通道设计

多通道的设计总体包括两个部分:多通道的控制和各个通道数据的传输。一种简单的多通道控制方法就是采用多个并行通道的设计,各个通道有各自独立和完全一样的功能模块,包括捕获模块,这种并行结构的设计不需要额外的通道控制逻辑,各个通道独立工作,不受干扰,尤其在捕获时各个通道可以同时工作,减少捕获时间。但是这种方法需要很大的硬件资源,尤其是在捕获算法很复杂时,捕获模块的资源占用最大。因此,在硬件资源有限的条件下,这种方法资源分配的不合理性使得实现这种结构不实际。在实际设计时,由于捕获模块需要占用整个FPGA的资源,因此只能采用捕获模块共享的结构,如图1所示,各个通道通过一个通道控制器共用捕获模块。这种结构下,各个通道的捕获是串行的方式,因此捕获时间为并行结构的N倍。

4 中断处理设计

由于跟踪环路的鉴频鉴相算法都是在DSP内运行,因此FPGA需要将通道的累加值及时发送到DSP, DSP运算结束后又需要及时将结果反馈回FPGA,这个过程需要用中断的方式来实现。传统的中断处理方法分为独立请求法、菊花链法和软件轮询法3种。独立请求法的方式给每个设备一个中断请求线,当有几个设备同时请求时,经判优逻辑选择一个优先级最高的中断请求,并形成对应的中断向量,通过数据总线送到处理器。菊花链法和软件轮询法都只需要一个中断请求线,处理器检测到中断请求信号后,根据优先级,分别通过硬件和软件的方法来选择中断请求设备。本课题选用的DSP处理器只有4个外部中断,而FPGA共有多个通道。因此,给每个通道分配一个中断请求线的方法不可行。另外,多个通道的数据到达时间间隔虽然固定,但是各个通道之间的数据到达时间并没有固定关系。综合考虑,本课题采用每个通道在积分累加结束后将累加值存入对应的相关峰值寄存器,DSP每隔时间T响应中断,并读取多个通道的相关峰值,运算结束后依次写入FPGA内的反馈寄存器。相关峰值寄存器的更新率和中断速率相同,但是两者并不同步;另外12个通道的数据更新也不同步。这里相关峰值寄存器组有类似双口Ram的功能,所不同的是该寄存器组的所有寄存器可以同时写入数据。

5 结论

可以根据实际来增加或删减通道达到相应的功能需要,用此种方法可以同时多通道稳定跟踪卫星信号,为后续的解算提供稳定的数据。

摘要:在设计卫星导航接收机时, 需要同时对多颗卫星实时跟踪才能获得最终的导航结果, 这就要求对每颗卫星都要有一个处理通道。本文提出了一种在FPGA和DSP的硬件开发平台上设计多通道跟踪环路的方法, 以及设计中断控制器来实现FPGA和DSP数据交互接口, 从而实现卫星信号的跟踪。

关键词:多通道,卫星信号,跟踪,中断

参考文献

[1]袁建平, 罗建军, 等.卫星导航原理与应用[M].中国宇航出版社, 2003.

[2]杨小牛, 楼才义, 徐建良.软件无线电原理与应用[M].电子工业出版社, 2001.

[3]王忠.高动态GPS接收机的设计.航天电子对抗.

[4]田明坤.高动态GPS接收机的一种设计方案[J].遥控遥测.

[5]刘基余.GPS卫星导航定位原理与方法[M].科学出版社, 2003.

[6]董在望.通信电路原理[M].高等教育出版社, 2003.

[7]郑君里, 杨为理.信号与系统[M].高等教育出版社, 2001.

硬件实现 篇5

【关键词】自动抄表系统;集中器;嵌入式系统

目前,电力行业在对电力资源进行管理的过程中主要是以远程抄表,智能缴费的形式为主。主要是由于人工抄表不仅工作量相对较大,精准度也无法保证。采用智能卡付费的形式给用户带来了较大的便利。随着电子技术、通信技术以及计算机等技术的高效发展电力系统发展中的嵌入式技术逐渐趋于成熟。集中器作为远程电力抄表系统运行的核心部位,研究人员对其设计形式以及实现形式进行探讨和分析具有一定的现实性和可行性。

1、集中器的硬件设计与实现的重要性

远程抄表系统在运行的过程中主要以集中器的功能和性质为主。集中器主要是通过各种智能仪表以及模块的形式来实现数据的采集和传输,最终对各种不同类型的信息进行储存。在这一过程中信道形式比较特殊,在上行通信信道和服务器相互连接的过程中,上行通信信道主要采用的是公用网络。另外,由于集中器所包含的模块类型比较复杂,数量较多。研究人员只有对各种硬件模块进行研究,才能够提升电力远程抄表工作的效率,促进通信方式的科学性和规范性。

2、集中器的硬件

2.1中央处理器

集中器硬件设备的中央处理器结构处于核心位置,其芯片性能以及系统性符合集中器硬件设计的要求。通常情况下,计数人员在对远程抄表系统进行研究和优化的过程中,集中器硬件所选择的芯片类型主要是AT系统的芯片,同时还需要加设各种全套的外围设备。不仅如此,网口结构和控制器也是不可缺少的结构类型。由于芯片的系统功能较强大,因此,外部组件的件数也可以逐渐减少。

2.2存储模块的设计

无论是哪种类型的芯片,都含有外设接口。芯片内部的存储器在无法满足实际要求时,需要进行不断扩展。通常情况下,储存器的主要作用是存储系统的程序。电表上的相关数据主要应该存储在Flash存储器或者是内存卡上。在内存方面如果存储空间足够大,就没有必要进行扩展。

2.3上行通讯模块的设计

第一,MODEM通信设计。集中器在上行通讯模块运行的过程中主要的功能就是实现内置MODEM和上位机之间的通讯。这种通讯方式属于有线通讯的一种。用户只需要将电话线接入到端口位置就可以实现远程通讯。在上位机开始拨号的过程中,集中器上面的指示灯会处于常亮的状态。在命令执行完毕之后,集中器的指示灯和MODEM的指示灯都会熄灭。集中器的上位机指示灯是判定通讯进程的重要指示,保证通信模块的灵活性和稳定性是设计工作的重点之所在。研究人员要将这方面作为通讯模块设计重点,加强模块结构和主板之间的联系。

第二,红外通信设计。所谓的红外通讯技术主要是采用红外线的形式来对数据进行传递,同样属于无线通讯技术的一种。这种通讯形式不仅价格低廉,而且在联接的过程中保密性较高,损耗程度较低。但是,这种通信设计形式在距离和速度方面受到严重的限制,在测试方面的应用价值还有待提升。

集中器下端部位有一个红色的按钮,在抄表的过程中可以将终端设备和集中器相互连接。在指示红灯闪亮几次之后,就可以根据具体的指示来进行操作。在红外通讯指示灯熄灭之后,集中器可就可以退出红外通讯状态。红外信号在进行转化以及传输的过程中主要采用的是不同类型芯片形式,在提升调制解调作用的基础上,提升了信号传输的高效性和整体效率。在实际的电力抄表应用的过程中,工作人员需要对抄表现场的检测工作加强重视,同时对于集中器的各项参数进行科学合理地控制。为了保证远程抄表工作进行的高效性和准确性,需要在实际的工作中选择素质相对较高或者是对操作技能掌握程度较强的工作人员。而且集中器设备的红外功能比较突出。

2.4下行通讯模块的设计

人们经常说的下行通讯,主要是指集中器和相关的终端设备所进行的数据传输。从项目设计工作中可以看出,AT系列的芯片可以用户上行和下行通讯设备当中。而TX和RX系列芯片仅仅可以用户下行通讯的终端设备当中。在下行通讯模块设计的过程中,主要涉及到的就是载波形式的通信口,芯片以及各种串口、控制口等等。加强数据的传递是集中器设备的最终工作目标,提升设计的科学性和规范性也可以有效地提升电力远程抄表工作的高效性。

第一,载波通信设计。下行载波通讯模块的主控芯片是专为面向未来的开放式自动抄表智能信息家电以及远程监控系统而设计的单芯片片上系统,它除了具有功能强大的微处理器外尤其在高精度模/数转换以及电力线载波通讯方面具有更大的优势,它的扩频通信单元是PL2000系列专用电力线载波通信集成电路的升级内核具有更强的抗干扰能力更高的数据通信速率和更大的软件可配置灵活性。

第二,RS-485设计。在电力通讯方案的设计中,下行通讯除了采用低压电力载波通讯方式以外,还经常利用RS-485总线通讯方式。因为这样组网方式就较为灵活既可使用RS-485总线和低压电力载波混合的方式组网,也可以使用可靠性比较高的全485方案组网。而且可用于RS-485接口的芯片种类也越来越多实现这种通讯的技术也相当成熟。

2.5JTAG的设计

本设计采用SAM-ICE仿真器调试程序,SAM-ICE是专为ATMEL的AT91系列ARM处理器设计的JTAG仿真器.标准的JTAG接口是4線,分别为测试模式选择、测试时钟、测试数据输入和测试数据输出,JAG测试允许多个器件通过AG接口串联在一起,形成一个AG链,能实现对各个器件分别测试,JAG接口还常用于对FLASH器件进行编程.通过JTAG接口可对芯片内部的所有部件进行访问,因而是开发调试嵌入式系统的一种简洁高效的手段。

3、结束语

集中器通过MODEM通信方式接收来自上行信道的主站命令,处理器将接受到的命令转换为一条或者多条内部可执行的命令,从而提取历史数据或参数,并对数据进行协议封装传送给上行信道。上行信道将数据按照原路径传送给服务器,同时,通过下行信道抄收各种用户终端的用电量数据信息,并进行存储从而实现智能化抄表工作.这种基于ARM芯片的集中抄表系统是可行的、有效的,它代表着技术发展的新趋势也将会有广泛的应用前景。

参考文献

[1]王玉萍.抄表系统中集中器的设计[J].产业与科技论坛,2012(17).

[2]阎浩,叶崧.远程抄表系统中集中器软件的模块化设计与实现[J].现代电子技术,2011(04).

[3]陈凤.低压电力线载波通信技术及应用[J].电力系统保护与控制,2012(22).

[4]殷志良.基于IEC61850的通用变电站事件模型[J].电力系统自动化,2015(19).

[5]卢恩.一种新的自动抄表系统方案及其实现[J].电力自动化设备,2013(06).

作者简介

卡尔曼滤波算法的硬件实现研究 篇6

卡尔曼滤波算法是一种解决离散系统线性滤波问题的递推最优估计算法,它是采用状态空间法在时域内设计的滤波器。20世纪60年代以来,卡尔曼滤波算法得到了深入研究和广泛的工程应用,而今,它已经成功应用在导弹制导和控制、飞机自动驾驶、卫星导航[1,2]与定位等无线电技术的诸多领域,并取得了非凡的成就,为军事、工业以及科学工程的发展做出了重大的贡献。

在实际应用中,需要考察卡尔曼滤波算法的运算精度[3]和运算速度。卡尔曼滤波算法常采用通用处理器通过C语言软件编程实现。由于卡尔曼滤波算法存在大量的计算过程,同时通用的处理器串行地执行软件程序,因此在对实时性要求比较高的场合中该方法难以满足系统对运行速度的要求[4]。针对通用处理器实现卡尔曼滤波算法执行速度较慢的问题,考虑到现场可编程门阵列(Field Programmable Gate Array,FPGA)具有的高度并行性、执行速度快的特点,近些年来对在FPGA中设计卡尔曼滤波算法的硬件实现展开了初步的研究[5,6]。本文借鉴了通用处理器的CPU、RAM以及外设三大部件组成架构,设计了一种专用于处理卡尔曼滤波器的并行处理状态机,提出了一种基于FPGA的卡尔曼滤波算法的硬件实现方法。

1 卡尔曼滤波算法原理

卡尔曼滤波算法以“预测—实测—修正”的过程递推运算,根据系统的测量值来消除随机干扰,得到最优估计值。假设系统的状态方程[7]为:

系统的测量方程为:

式中,X(k)为k时刻的系统状态;U(k)为k时刻对系统的控制量;F和B为系统参数;Z(k)为k时刻的测量值;H为测量系统的参数;W(k)和V(k)分别为过程和测量的高斯白噪声,其协方差分别是Q和R。

利用系统的过程模型,可预测系统的下一状态为:

式中,X(k|k-1)是利用上一状态预测的结果;X(k-1|k-1)是上一状态最优的结果;U(k)为现在状态的控制量。

用P表示协方差,则可预测下一状态的协方差为:

式中,P(k|k-1)为X(k|k-1)对应的协方差;P(k-1|k-1)为X(k-1|k-1)对应的协方差;F'为F的转置矩阵;Q为系统过程的协方差。

根据状态的预测结果,计算得到目前状态的测量值,结合预测值和测量值,可计算得到状态k的最优化估算值X(k|k)表示为:

式中,Kg为卡尔曼增益,其计算方法为:

最后更新k状态下X(k|k)的协方差表示为:

式中,I为单位阵,如此递推下去。

2 基于FPGA的卡尔曼滤波算法设计

FPGA内部主要包括可配置逻辑模块(Configurable Logic Block,CLB)、输入输出模块(Input Output Block,IOB)和内部连线(Interconnect)3部分,而基于FPGA的卡尔曼滤波算法实现主要由这3部分构成,其实现原理如图1所示。

卡尔曼滤波算法数据输入输出由FPGA的IOB模块负责完成,算法的控制、运算和存储通过CLB模块设计实现,指令传达以及数据传输由Interconnect模块完成。

通过在FPGA的CLB模块中设计控制单元、运算单元和RAM存储器,可实现卡尔曼滤波器的递推公式运算过程。卡尔曼滤波算法控制单元,按照时序电路设计,依次完成状态预测、协方差预测、状态更新、卡尔曼滤波增益更新以及协方差更新。运算单元负责完成数值的加减乘除基本运算,其中包括加法器IP核、减法器IP核、乘法器IP核和除法器IP核。存储单元由一块RAM存储器构成,负责存储初始数据、中间数据及结果数据。

在卡尔曼滤波算法运算过程中涉及多个矩阵,其中包括状态更新矩阵、观测矩阵、协方差矩阵、状态向量、状态预测向量、协方差矩阵、协方差预测矩阵和卡尔曼滤波增益矩阵等,它们都需要存在一块RAM存储器中,因此在设计过程中为每一个矩阵分配一定的存储空间及相应的存储地址。

在应用基于FPGA的高维卡尔曼滤波算法的过程中,首先对RAM存储器中的滤波算法相关矩阵进行初始化,然后读取观测量,在控制单元的时序设计下递推完成卡尔曼滤波算法,其状态机执行流程如图2所示。

基于FPGA的卡尔曼滤波算法状态机由6个状态组成,其中S1、S2、S3、S4和S5依次通过控制单元执行时序控制过程完成,每个控制过程所涉及的矩阵运算由S6通过运算单元处理完成,在运算过程所需的计算参数从存储单元读取,并把每一控制过程的运算结果存放在存储单元。

3 实现验证

ISE是使用XILINX的FPGA的必备的设计工具。它可以完成FPGA开发的全部流程,包括设计输入、仿真、综合、布局布线、生成BIT文件、配置以及在线调试等,功能非常强大。本论文的实现验证工作在ISE开发工具中完成[8]。

首先在ISE开发环境中,建立工程,在该工程中,添加卡尔曼滤波算法硬件实现所需的RAM存储器、乘法器IP核、除法器IP核、加法器IP核以及减法器IP核。卡尔曼滤波器实现的FPGA工程如图3所示。

其中,RAM存储器的配置界面如图4所示。

由图4可以看出,RAM存储器采用Block Memory模块,因为在数据运算过程中采用双精度浮点运算,所以定义数据宽度为64位,存储深度依据卡尔曼滤波器维数而定。

运算单元的IP核配置界面如图5所示。

由图5可以看出,运算单元的所有IP核采用双精度浮点Floating-point模块,该模块以占用大量的逻辑资源为代价换取高速的运算速度。

关键的卡尔曼滤波算法采用VHDL语言编程实现[9]。如上描述,卡尔曼滤波算法的运算过程可以理解为以下循环的重复和逻辑控制:①从RAM中读取数据;②把数据送至运算器进行处理;③处理的数据结果写入RAM。如此便可完成卡尔曼滤波器的硬件实现。

卡尔曼滤波算法在通用处理器以及FPGA中实现的运行速度对比结果如表1和图6所示。

表1和图6中,通用处理器中采用C语言设计的卡尔曼滤波算法,工作频率为100 MHz;同时,FPGA中采用VHDL设计的卡尔曼滤波算法,FPGA的工作频率为100 MHz。这保证了通用处理器和FPGA工作在相同的时钟频率下。

由表1中的对比数据可以看出本论文所提出的基于FPGA的卡尔曼滤波算法硬件实现方法切实可行,而且运行速度比在通用处理器中执行速度快。

4 结束语

本文针对卡尔曼滤波算法在通用处理器中串行执行软件程序运行速度低的问题,提出了一种基于FPGA的卡尔曼滤波算法的硬件实现方法,并通过ISE工具进行了开发验证,验证结果随着卡尔曼滤波器维数的增加,基于FPGA的卡尔曼滤波算法将比在通用处理器中的运算速度大大提升。但本方法尚未在工程实践中得到应用,这有待于继续探索。

摘要:卡尔曼滤波算法常采用通用处理器串行执行软件程序的工作方式来实现,但在对实时性要求比较高的场合,这种方式往往不能够满足系统对运行速度的要求。针对此问题,提出了一种基于FPGA的卡尔曼滤波算法的硬件实现方法,该实现方法具有并行运行的特点,大大提高了卡尔曼滤波算法的执行速度,具有良好的运行性能。研究结果表明,该方法切实可行,且运行速度比在通用处理器中执行速度快。

关键词:卡尔曼滤波,FPGA,并行

参考文献

[1]周富相,郑晓晶.基于卡尔曼滤波的RAIM方案研究[J].无线电工程,2011,40(11):36-39.

[2]余小游,高亭亭,孙广富,等.卫星导航弱信号的变维卡尔曼滤波跟踪算法[J].国防科技大学学报,2015,3(3):56-60.

[3]梁民赞,黄子豪,曹占启.曲线拟合与卡尔曼滤波器的滤波精度评估[J].无线电工程,2013,43(3):36-39.

[4]CHUI C K,CHEN G.卡尔曼滤波及其实时应用[M].北京:清华大学出版社,2013:1-3.

[5]冯刚,吕茂庭,覃天.基于MATLAB的卡尔曼滤波仿真研究[J].电子产品可靠性与环境试验,2011,29(6):61-63.

[6]徐经纬,刘士君.交互多模型扩展卡尔曼滤波算法的FPGA实现[J].传感器与微系统,2014,33(1):11-14.

[7]李朝伟,周希元,沈文亮.Kalman滤波算法在被动跟踪中的应用[J].无线电工程,2007,39(5):49-51.

[8]田耘,徐文波.Xilinx FPGA开发实用教程[M].北京:清华大学出版社,2008:14-18.

网络传输中CRC的硬件实现 篇7

CRC的应用范围非常广泛, 研究CRC的硬件实现具有代表意义。

一、CRC原理的介绍

CRC的原理就是通过对初始数据进行运算, 产生一个固定长度的数据附加在初始数据后面构成新的数据, 这个新的数据和初始数据的关系就是运算。也就是说, 对新的数据进行校验运算, 可以判定数据的传输过程有没有发生错误。具体运算过程如下。

设初始数据为P (X) , 是一个n阶多项式, 表示为:

P (X)  = an-1xn-1+ an-2xn-2 + ··· + a1x + a0

式中ai为0或1, x为2。比如一个8位的二进制数1001_1101可以表示为:

P (X)  = 1x7 + 0x6 + 0x5 + 1x4 +1x3 + 1x2 +0x1 + 1x0

P (X) 通过除以CRC多项式G (X) 后, 得到一个余数R (X) 和商Q (X) , 这个R (X) 就是我们需要的CRC校验值, 用公式表示如下

P (X)  = Q (X)  * G (X)  + R (X) [2]

最后, 将Xk* P (X)  + R (X) 作为信息码M (X) 发送出去。K为G (X) 多项式的最高位减1。

接收方收到信息后, 做如下处理:

计算M (X) /G (X) , 如果传输正确, 应有M (X)  = Xk* P (X)  +R (X) , 即M (X) /G (X)  = R (X) 表示除尽。如果传输有错, 则M (X) /G (X) , 余数不为0。

理论的具体实现需要考虑几个问题:

首先, 这里所说的除法就是二进制的模二加 (或称为逻辑的异或) , 是不需要考虑进位或借位的。

其次, 虽然G (X) 的数据位是固定的, 但是P (X) 的数据位是未知的, 而我们总是希望能够生成固定长度的校验值, 这样才方便硬件的实现。分析得出, 主要是防止P (X) 的位数比G (X) 短, 解决的办法就是将P (X) 的位数加长, 传统的做法是在P (X) 后添加相应的CRC位数 (具体应该是CRC多项式最高位减1, 因为CRC多项式最高位可以忽略) 。即:CRC-5在运算时在初始数据后面增加5位的0;CRC-16在运算时在初始数据后面增加16位的0。

第三, CRC的最高位固定为1, 所以计算时可以不考虑最高位。

第四, 尚不需要, 因此不列入考虑范围。

二、CRC实现

在网络传输循环冗余校验 (CRC) 用来在令牌和数据包中保护所有的非PID字段, 检测传输是否发生错误。其中包括两种类型的CRC校验:5位CRC校验和16位CRC校验。令牌包采用5位CRC校验, 数据包采用16位CRC校验。5位CRC校验采用的生成多项式为:G (X)  = x5 + x2 + 1, 如果数据准确无误地接收到, 接收机中的5位余数应该是01100。16位CRC校验使用的生成多项式是:G (x)  = x16 + x15 + x2 + 1, 接收机中正确的余数是1000000000001101[1]。

为什么数据校验过程产生的余数不是0呢?这是由网络传输协议中的CRC原理得到的。网络传输协议为了保护包的最高位为0的数据传输, 为接收或发送的数据包都加上了一个与CRC位数相同的但各位全1的种子。另外, 如果是对发送的数据产生CRC, 则在运算结束后, 将产生的余数各位取反, 加到传输的数据的结尾。为什么要取反呢?这次是为了保护数据结尾为0的数据[1], 因为按位取反相当于加上一个全1的数。这种方式对于CRC-5和CRC-16同时有效。

以CRC-5为例来介绍整个运算过程。假设一个和CRC-5位数相同的全1的种子是I5:

I5 = 1*24 + 1*23 + 1*22 + 1*21 + 1*20

P11是11位要保护的数据;

G (X)  = x5 + x2 + 1是生成多项式;

R5是余式;

C16是16位包含了CRC5的数据。

在传输时, 运算如下:

R5 =  (I5*211 + P11*25) /G (X)              (1)

C16 = P11*25 + R5 + I5                     (2)

式 (2) 中加上一个I5相当于是对R5按位取反。

接收方接收到数据对数据进行同样的运算, 但此时的数据已经是16位了, 所以运算原理相同, 但过程稍有不同:

(I5*216 + C16*25)  mod G (X)  是否为余项01100。

如果是01100则说明传输正确, 否则传输有误。为什么, 证明如下:

(I5*216 + C16*25)  mod G (X)

=  (I5*216+ ( P11*25 + R5 + I5)  *25)  mod G (X)

=  ( (I5*211 + P11*25 + R5) *25 + I5*25)  mod G (X)

=  (I5*211 + P11*25 + R5) *25 mod G (X)  + I5*25 mod G (X)   (3)

由于 (I5*211 + P11*25 + R5) 是G (X) 的整数倍, 所以 (I5*211 + P11*25 + R5) *25 mod G (X) 一定为0, 即余数为0。

所以对式 (3) 的化简结果应为:I5*25 mod G (X) 。

而I5*25为 (1111100000) 2 , G (X) 为 (100101) 2 。

通过模2计算, 可知结果应为 (01100) 2 。

同理可证CRC-16的余项为1000000000001101。

三、网络传输中的串行CRC算法

对于CRC的产生和校验, 在开始时发生器和检验器里的移位寄存器置成全l。对于每个被发送或者接收的数据位。当前余项的最高一位和数据位进行异或, 然后余项左移1位。并且最低1位置零。如果异或的结果是1, 余项要与生成多项式作异或。当要检查字段的最后1位被发送的时候, 发生器里的CRC按位变反, 再以最高位在前的方式发给检验器。当检验器收到CRC的最后1位, 且不发生错误的时候。余项将等于发送多项式的剩余。如果最后计算出的结果和余项不匹配, 则存在CRC误差[3]。

四、网络传输中的串行CRC校验的设计与实现

通常CRC校验可以通过线性反馈移位寄存器 (LFSRs) 来实现。因此, 串行5位CRC校验可以采用一个5位移位寄存器、几个异或门和一条反馈回路实现。根据网络传输协议中的规定, 移位寄存器初始值置为全“1”, 输入的串行数据比特先与移位寄存器的最高位进行异或, 然后移位寄存器左移一位, 并把右边的最低位置为“0”。如果前面异或结果为“1”, 则把移位寄存器和G (X) :00101进行异或, 异或的结果作为新的寄存器值;如果为“0”, 则不需要这步操作。由于X ^ 0=X, 因此无论是否要与生成多项式的比特模型进行异或, 除了第2位和第0位之外, 移位寄存器的其余3位始终保持不变[4]。

同理对应CRC-16, 只有第0位、第2位和第15位有变化, 巧合的是前两位与CRC-5的变化模式一样, 所以可以将两者的生成与校验混为一体。具体对应的硬件描述语言如下:

证明上述代码的正确性之前, 首先要清楚, 硬件描述语言的各个模块是并行的。所有模块都在不停的运转。下面证明CRC-5校验算法的正确性。

上述代码的核心是第4个模块, 根据其它模块可以得出, 如果是对CRC-5进行校验, 则Ip Data为Rx Bit, Feedback Data为Shift Reg[4], 并且我们只关心移位寄存器的低5位。因为从校验模块可以看出只要Shift Reg[4:0] == 5'h0C, 就输出CRCGood =1。将第4个模块简化如下:

从原理中可知, 只有第0位和第2位需要变化, 其它位就是每过一个周期就移一位。

原理中:首先, 输入的串行数据比特先与移位寄存器的最高位进行异或, 表达式就是Rx Bit^ Shift Reg[4]。

异或之后左移寄存器, 最低位补0。

1. 如果该式为0, 则移位寄存器不变, 而我们这里没有对该位进行判断, 为什么?

因为Shift Reg[0] <= Rx Bit^ Shift Reg[4]满足最低位为0 (该式运算结果就为0) ;

Shift Reg[2] <= Shift Reg[1] ^  (Rx Bit^ Shift Reg[4])  =Shift Reg[1]^ 0 = Shift Reg[1];也不变

2. 如果该式为1, 则移位寄存器与G (X) 异或, 即最低位的0和1异或, 结果为1,

而Shift Reg[0] <= Rx Bit^ Shift Reg[4]为1, 说明该式正确;

第2位与1异或,

Shift Reg[2] <= Shift Reg[1] ^  (Rx Bit^ Shift Reg[4])  = Shift Reg[1]^ 1, 满足原理的要求。

使用SILOS工具 (Simucad Inc.) 进行仿真, 输入串行比特流:1010_1000_1111_0111, 该数据的低5位为前面11位的校验码。仿真波形如图1所示:

由图中可以看出, 从第一个数据输入开始, 经过16个周期数据接收完毕, 之后CRCGood信号在时钟上升沿跳变为1, 表示CRC校验成功。

其它证明以此类推, 可以得出CRC-5的生成与CRC-16的生成与校验都满足协议的要求。

五、结论

本文使用Verilog描述的CRC代码非常短小精悍, 比软件实现更方便, 并且硬件电路的实时性优于软件实现。硬件描述语言在大规模IC (集成电路) 芯片的实现过程中是不可或缺的。由于我国IC发展的滞后, 导致硬件描述语言的发展也相对落后。不过, 现在可以在一些大规模的FPGA上使用硬件描述语言进行编程, 推动了硬件描述语言的发展。掌握硬件描述语言不仅需要大量的实践, 还要对数字电路有很深的了解。本文以网络传输物理层中CRC电路为实例说明了硬件描述语言的一种分析方法——即算法、实际的数字电路和程序三者相结合的方法。本文描述的是一个CRC的串行实现, 该电路须与接收发送数据的时钟相一致。根据本文提供的分析方法结合文献[3]、[4]不难推导出并行电路。

摘要:讨论了串行计算循环冗余校验码 (CRC) 的原理, 并给出了对应的硬件实现。

关键词:CRC,网络传输,Verilog HDL

参考文献

[1]Universal Serial Bus Specification[/OL].Revision 1.1.http://www.usb.org.

[2]循环冗余校验 (CRC) 原理与实现[/OL].http://www.430diy.com

[3]程军, 陈贵灿, 姜飞.USB数据传输中CRC校验码的并行算法实现[J].微电子学与计算机, 2003, 20 (3) :77-80.

硬件实现 篇8

单片机,即将计算机的CPU, RAM, ROM,定时/计数器和多种输入输出接口集成在一块芯片上,形成了芯片级的计算机。它拥有优异的性价比、集成度高、体积小、可靠性高、控制功能强、低电压、低功耗的显著优点。主要应用于智能仪器仪表、工业检测控制、机电一体化和消费电子类产品等方面,并且取得了显著的成果。本设计将使用单片机对LED控制实例化,设计一个32颗LED组成心行形状,核心控制器给出相应的控制数据对32只高亮LED进行控制。颜色显示采用的是内嵌三种颜色的LED进行不同的组合得到不同的颜色,如绿色和红色组合可以得到蓝色等。

1. 系统总体设计

本设计是基于STC89C52单片机的LED彩灯控制设计。硬件电路设计包括基于STC89C52单片机的最小核心控制系统电路、LED彩灯模块、键盘电路和电源电路。软件设计主要包括LED彩灯的控制、键盘对LED颜色和频率的控制。最终将两者合并调试,完成最终的设计。系统将外接的5V直流系统供电,通过单片机软件编程对LED和键盘实施控制以完成各种色彩变化。

2. 单片机最小系统

单片机能够正常工作的最基本的电路由单片机、时钟电路、复位电路等组成。复位电路:确定单片机工作的起始状态,完成单片机的启动过程。单片机系统的复位方式有上电自动复位和手动按键复位。本设计采用上电自动复位。时钟电路由一个晶振和两个小电容组成,用来产生时钟频率。STC89C52单片机芯片内部有一个反向放大器构成的振荡器,XTAL1和XTAL2分别为振荡器电路的输入端和输出端,时钟可由内部和外部生成,在XTAL1和XTAL2引脚上外接定时元件,内部振荡电路就会产生自激振荡。系统采用的定时元件为石英晶体和电容组成的并联谐振回路。晶振频率选择11.0592MHz,电容值取30PF,电容的大小频率起微调的作用。STC89C52单片机的最小系统如图1所示。

3. 电源模块电路

本次设计的系统中的电源模块使用LM7805芯片作为稳压核心,为系统提供稳定的+5V直流电源,保证系统正常顺利地运行。电源模块电路原理图如图2所示:

4. LED显示电路

流水灯采用的是发光二极管(Light-Emitting Diode),简称LED,是一种将电能转换为光能的半导体器件,具有体积小、耗电低的优点,常被用作微型计算机与数字电路的输出装置。当LED两端加上一定的正向电压,使之流过一定的工作电流就会发光,其亮度随流过的电流的增加而增加,但电流过大LED的寿命也将缩短。普通LED正向电流一般为5~20mA。由于51的I/O是弱上拉的方式,在输出高电平时,只能输出几十微安的电流,而在输出低电平时,I/O最大可以输入几十毫安的电流。所以,通常采用灌电流的方式,即电流从电源经LED流向I/O口。为了不因流过LED的电流太大而把它烧坏,必须串上限流电阻R,当P0和P2口输出高电平(+5V)时,LED两端没有电压降,所以熄灭;当P0和P2口输出低电平(即P0/P2=0)时,LED正向导通发光。此时LED两端电压约为1.7V,则限流电阻R两端将存在3.3V(即5-1.7=3.3V)。因STC89C52单个I/O口的输入电流不能超过10mA;P0口的输入电流总和不能超过26mA;P1、P2、P3的输入电流总和不能超过15mA;所有I/O口的输入电流总和不能超过71mA。由色度学原理可知,如果将红、绿、蓝三原色按照一定比例混合,则在适当的三原色亮度比的组合下,理论上就可以获得无数种颜色,这时就可以用3种发光波长的LED通过点亮和电流控制实现色彩的调控,即调色。下表是这一电路的逻辑真值表。

LED电路如图3所示。

5. 键盘电路

本设计采用四个按键控制不同的显示效果,开机后呈现不同色,按键A用于切换LED的不同颜色,按键B控制LED的频率,由稳定到100ms闪烁到500ms闪烁到1s闪烁。按键C控制不同区域的LED发光;按键D,使其LED每一秒成不同颜色切换点亮。电路如图4所示。

6. 结语

本设计制作的基于51单片机控制的LED彩灯系统在多次测试修改之后,最终实现了对32只高亮LED彩灯控制的功能,并且系统功能稳定。此外设计中留有很大的扩展空间,如:控制多样化,颜色显示更丰富,LED灯亮度的调节等,推向市场后便于升级开发。因此基于51单片机控制的LED彩灯系统,具有较高的实用价值和广阔的市场前景。

参考文献

[1]童诗白等.模拟电子技术基础[M].北京:高等教育出版社, 2000.

[2]杨清德.康娅.LED及其工程应用[M].北京:人民邮电出版.

[3]阎石著.数字电子技术基础[M].北京:高等教育出版社, 1997.

[4]周国运.单片机原理及应用[M].北京:中国水利水电出版社, 2009.

硬件实现 篇9

1 中间件优化整合

目前中间件主要采用的是Weblogic, 所以本文以Weblogic为实例。

1.1 中间件与硬件结合的整合方式

中间件与硬件结合的整合方式, 主要依赖于硬件系统的分区或者虚拟化技术, 将系统资源进行合理分配, 在不同的分区上安装Weblogic实例, 再应用部署到不同的Weblogic实例中去, 从而实现整合。

1.2 完全的中间件整合

对于完全的中间件整合方式, 重点是在同一个Weblogic Domain中部署多个应用, 具体的说, 就是一个Weblogic实例运行多个应用程序, 从而实现整合。这里提出的一个Weblogic实例, 可能是一个单机实例, 也可能是由多个实例组成的一个集群环境。

从整合难度来说, 完全的中间件整合难度大于中间件与硬件结合的整合方式。其原因为, 后一种方式对现有应用基本没有影响。然而, 完全整合难度虽大, 但也带来了“标准化”的附加值。从长远考虑, 完全整合方式对企业中间件层面的影响更加深远也更有价值。

2 数据库优化整合

目前数据库主要采用的是Oracle, 所以本文以Oracle为实例。

2.1 O racle单机多实例多用户主备模式

该模式采用单机的Oracle软件, Oracle采用双机的主备模式, 当数据库服务器主节点发生故障之后, 备节点可以自动切换, 采用操作系统级高的可用软件实现切换。

对于Oracle软件本身, 可以采用多实例或者单实例系统。如果是应用系统的数据库类型一致 (即都是OLTP类型) 、并且SQL的复杂度类似, 就可以采用单实例的Oracle, 各应用系统的数据库表、索引、触发器等采用用户 (Schema) 的形式进行区分。如果是数据库类型不同, 或者SQL复杂度差别很大的系统整合, 建议采用多个实例的形式。

2.2 O racle R AC多用户共享模式

该模式为Oracle RAC多用户共享模式。根据业界的最佳实践, 一般三个节点以上的RAC系统各自节点之前会消耗内部通讯的资源, 所以建议RAC多用户共享模式采用RAC双节点完成。

多用户共享RAC实例。各个整合的应用系统在该模式上建立不同的用户 (Schema) 区分各自的表空间、索引、存储过程等。

2.3 O racle R AC单用户独享模式

该模式为Oracle RAC单用户独享模式的整体架构类似于Oracle RAC多用户共享模式, 其主要的不同点是单一用户独享该数据库系统, 这种模式主要用于处理类型比较特殊的应用 (例如一个存OLAP系统) , 或者是关键程度很高的应用可以采用该模式进行整合。

3 服务器优化整合

服务器优化整合从整合程度上来考虑可分为如下两种方法:物理整合和逻辑整合。

*物理整合:将分散于多个地理位置的服务器集中并部署在一个地理位置, 通过构建密集机架或刀片服务器的方式实现物理整合。

*逻辑整合:通过服务器虚拟化技术, 在一台物理服务器上建立多个虚拟服务器, 并分别部署多个应用。

以上两种方法实现的整合程度不同, 所需要的投入和获得的收益也各不相同。其中, 逻辑整合可以获得最大的收益, 并且可以最大程度提高资源使用率和标准化水平, 同时, 相应的整合所承担的风险、投入和难度也最高。

3.1 物理整合

服务器物理整合通常采用如下两种模式。

(1) 地理集中。多个地理位置的服务器集中并部署在同一个地理位置, 实现服务器的集中管理和监控。

(2) 高密度机架或刀片。同一地理位置的服务器通过构建密集机架或刀片服务器的方式, 实现空间和能耗的降低。

3.2 逻辑整合

在逻辑整合模式中, 通常考虑采用如下两种模式。

(1) 服务器资源池。服务器统一采购, 统一部署, 统一使用和统一管理, 构建统一的服务器资源池, 各种应用部署于不同的服务器群上。

目前信息系统大部分都是基于B/S的三层架构应用系统, 即在前端与用户进行通信的Web层, 基于中间件系统的处理业务应用逻辑的应用层, 和后台用于数据的存储和处理的数据库层。因此, 服务器整合时, 可分别建立数据库、应用和Web服务器群, 用于集中部署各类服务器。服务器资源池可以访问和共享统一的数据存储和存储网络。

(2) 服务器虚拟化。即通过在硬件或软件级别上的虚拟化技术将多台独立的物理服务器以虚拟服务器方式整合到一台或几台高端服务器上。

目前服务器硬件平台主要为UNIX小型机和PC服务器, UNIX小型机上的虚拟化技术主要为逻辑分区和物理分区技术, PC服务器上常用的虚拟化技术有VMware、Xen等多种。使用虚拟化技术, 可实现更高层次的服务器虚拟集中, 对于负载较低的前中端服务器, 可以通过在一台物理服务器上创建多个虚拟分区, 安装和运行多个操作系统和应用, 虚拟分区间逻辑完全独立, 硬件 (CPU存储, I/O) 可采取完全独立或者分享部分资源的方式, 实现虚拟分区的高可用性, 通过服务器虚拟化技术可以有效和充分的利用服务器资源, 减少服务器数量和采购, 管理, 维护成本。

4 存储整合

存储整合目前主要方向就是存储虚拟化, 虚拟存储就是整合各种存储物理设备为一整体, 提供永久保存数据并提供能被用户调用的功能, 即在公共控制平台下存储设备的一个集合体。即在不同项目的实施中采购不同厂家不同型号的存储设备, 需要通过虚拟化手段才能进行统一管理和使用。

虚拟存储一般分成如下三类:基于主机或服务器的虚拟化、基于磁盘或磁盘子系统的虚拟化和基于网络的虚拟化:

(1) 基于主机层的虚拟化

基于主机 (应用服务器) 上的虚拟化一般通过运行在存储管理软件加以实现。一般常见的管理软件如逻辑卷管理软件 (LVM) 。逻辑卷, 一般也会用来指代虚拟磁盘, 其实质是通过逻辑单元号 (LUN) 在若干个物理磁盘上建立起逻辑关系。逻辑单元号, Logical Unit Number (LUN) , 是在一个基于SCSI的标志符, 用于区分在磁盘或磁盘阵列上的逻辑单元。

(2) 基于存储设备和存储子系统的虚拟化

虚拟化技术也可以在存储设备内部或存储子系统内部加以实现。比如说磁盘阵列就是通过磁盘阵列内部的控制系统进行的虚拟, 同时也可以在多个磁盘阵列间构建一个存储池。这种基于存储设备或存储子系统的虚拟通过特定的算法或者映射表把逻辑存储单元映射到物理设备之上。最终实现的就是卷独立于其所属的存储设备。根据采用的方案不同, RAID、镜像、盘到盘的复制以及基于时间的快照都采用了此类虚拟化。通过虚拟化, 虚拟磁带库、虚拟光盘库等都得以在存储子系统中加以实现。

(3) 基于SAN的虚拟化

与基于主机和存储子系统的虚拟化不同, 基于SAN的虚拟化功能是在网络内部完成的。具体的虚拟功能的实现可以通过控制SAN交换机的路由来实现。在服务器层面看, 带内存储容易产生性能瓶颈。

智能硬件≠APP+传统硬件 篇10

相对于国外厂商的稳重与慢热,国内厂商就似乎积极了很多—各种“智能”产品层出不穷。但除了个别精品,国内越来越多的所谓“智能设备”,已经背离了“智能”这二字的初衷,变得为了智能而智能。我最近玩过不少所谓的智能硬件,让人“惊艳”的却不是产品设计和理念,而是开发团队的“大胆”—什么产品都敢冠上“智能”二字。且不说把显示屏从机身上移植到手机端,就敢自称“智能”的秤,以及将计步器穿上表带,变成的“智能手环”,那些可以通过手机调节发光颜色的灯泡凭啥就说自己就“智能”了?

什么才是我们想要的智能硬件?以智能手环为例,现在很多产品提供的仅仅是记录运动量、睡眠时间等简单功能,那么有没有可能实现记录和分析身体的各项核心指标,并提供相关的提醒和建议呢?或者类似于Fitness Band一样,提供心率检测、信息收取,以及背后的大平台、大数据支持呢?就算是没有如此财力,那么是否可以将更多精力放在实用性上,让用户使用起来能够感受到设备的“智能”呢?比如我最近看到了一款路由器产品,不仅可通过近场认证技术实现无密码连接,还拥有自动组网功能(多台设备可自动组成局域网,并实现无线信号加强)—我想,这才是人们想要的、真正的智能。

短距离声通信的硬件设计与实现 篇11

在无线传感器网络的某些应用环境中可能会存在短距离无线通信频率共存或强电磁干扰, 从而导致无线通信的不稳定甚至通信中断。为解决以上问题, 参考水下无线传感器网络所使用的水声通信技术, 提出了一种可用于无线传感器网络的短距离声通信技术, 在对相关理论进行研究的基础上, 设计了一种以ARM为主处理器、FPGA作为协处理器的具有短距离声通信功能的传感器节点, 并进行了测试。

1 系统总体结构和实现原理

1.1 硬件系统结构

传感器节点是无线传感器网络的基本组成单元, 无线传感器网络是由数量众多的传感器节点通过自组织方式组成的通信网络。传感器节点通过所携带的某一种或多种传感器来获取外界特定的物理信息数据, 所获取的监测数据通过无线传感器网络上传给用户节点。该设计增加了声通信作为协通信方式, 设计出一种新型的传感器节点, 其结构框图如图1所示。该传感器节点将射频无线通信方式作为主通信方式, 当遇到强电磁干扰不能正常通信时, 可以使用声通信作为协通信方式来进行通信。由该传感器节点组成的无线传感器网络能够很好地解决在某些特殊环境中的短距离无线通信“拥堵”或强电磁干扰所致的通信不稳定甚至通信中断问题。

1.2 传感器节点的声通信实现原理

为在传感器节点上实现短距离声通信, 声通信模块为设计的最重要部分。考虑到物理层的需要, 设计声通信模块的原理框图如图2所示。该设计主要包括传感器节点的处理器模块 (ARM) 、协处理器模块 (FPGA) 、放大模块和换能器, 通过这些模块的协调工作来实现通过声信号进行数据发送和接收。

发送数据时, CPU首先开启A/D模块, 并通知控制逻辑准备发送数据, 控制逻辑根据A/D模块采集到的数据进行空闲信道评估, 判断信道是否空闲。如果信道空闲, 则通知CPU可以发送数据, CPU将待发送数据发送到发送数据FIFO中, 并使能D/A模块。控制逻辑对接收到的数据进行编帧及差分编码等一系列处理后, 将数据发送给声信号调制单元进行DPSK调制, D/A模块将调制好的数据流转换成模拟信号, 经发送放大电路放大后驱动电声换能器发送声信号。

接收数据时, CPU先启动控制逻辑和A/D模块, 控制逻辑根据A/D采集到的数据进行声信道能量检测, 判断声信道中是否有其他节点在发送信号, 若有则控制声信号解调单元进行DPSK解调, 经过计算获取最终数据, 并通知CPU准备接收解调数据。如果CPU不忙, 则将数据发送到解调数据FIFO, CPU从FIFO中读取接收到的数据。

2 硬件构成

传感器节点中主要包括处理器模块、无线通信模块、换能器、放大模块、传感器模块、存储器模块及供电模块等。本文设计的短距离声通信传感器节点的重要部分为声通信模块, 由处理器模块、放大模块及换能器组成。

2.1 处理器模块

声通信传感器节点的处理器包括主处理器ARM和协处理器FPGA。主处理器使用的是意法半导体 (ST) 公司推出的基于ARM Cortex-M3的系列中最高配置芯片STM32F103ZE, 负责对传感器节点工作流程的控制和对监测数据的初步处理。该处理器片上集成了512 KB的Flash和64 KB的静态SRAM, 具有2个12位ADC可用来采集数据, 具有实时性能优异、功耗控制方便、外设丰富、易于开发等优点[5,6]。协处理器采用可编程逻辑器件FPGA, 主要用于声通信的调制与解调, 进行较为复杂的数据处理, 如监测数据的压缩等。使用Altera公司CycloneⅡ系列中的EP2C35F484, 该型号FPGA芯片具有丰富的逻辑资源, 有较多的I/O端口和大容量的内部RAM, 能很好地满足设计要求。

2.2 换能器

电声换能器是完成电-声转换和声-电转换的器件。压电式换能器在电声转换效率、频率特性、体积、造价等方面都有一定的优势。压电换能器分为发射型换能器 (蜂鸣器、扬声器等) 和接收型换能器 (拾音器、微音器等) 。该设计中传声换能器及发声换能器均选用压电式换能器来完成声信号的发送和接收。

2.3 放大模块

声通信的放大模块包括声信号输出放大电路和声信号接收放大电路。同时声信号的采集过程中存在环境噪声的干扰, 需要在放大完成之后加上带通滤波电路, 以去掉环境噪声, 得到系统所需要的声信号。

由于压电发声换能器 (压电扬声器) 的驱动要求有高压摆幅, 而传感器节点基本都采用电池供电, 因此需要采用必要的升压措施。设计中选择了升压型的D类放大器PAM8902。PAM8092还具有通过检查INP的输入信号大小来自动开启或停止与信号放大相关电路的功能, 可很好地节省电池能量。

传感器节点间进行声通信的过程中, 节点间的距离不定, 换能器接收到的声信号比较微弱, 需要对换能器转换得到的微弱电信号进行放大, 以方便后期的数字信号处理和信号的解调。设计采用了两级放大, 放大倍数接近1 000倍, 第一级放大器选用AD623, 放大倍数设为10倍, 第二级选用放大器LM324, 放大倍数设为100倍, 根据实际测试结果, 可以对放大倍数做进一步的调整。

2.4 电源管理模块

锂电池具有可重复充电、能量密度高、无记忆效应、放电平缓等优点, 本设计使用3.7 V锂离子电池供电。电源管理模块是为了合理利用电能而设计的, 根据传感器节点的工作状态, 由处理器控制电源管理模块开启或关闭各个模块的电源, 实现对电能的管理。节点在设计时处理器平时采用低功耗模式, 射频模块采用掉电模式, 直到有数据处理或收发时激活各个模块。

2.5 传感器节点其他模块

除了以上模块, 传感器节点的硬件构成还包括无线通信模块、传感器模块和存储器模块。

节点中无线通信模块使用了单片收发且功耗低的n RF24L01芯片, 它在2.4~2.5 GHz的世界通用ISM频段工作。该芯片还具有自动应答和自动重发功能, 能减少处理器的工作量[6]。

传感器模块根据无线传感器网络的应用目的而具体选择。传感器模块将监测对象的物理信息转化为模拟电信号, 经过放大调理后进行A/D转换得到数字信号, 由处理器处理或存储到存储器。

处理器模块内部的存储器空间有限, 为满足大量数据的存储, 设计了存储器模块, 选用存储空间为256 KB×16的SRAM芯片IS61LV51216。

3 软件设计

与声通信相关的ARM程序 (C程序) 和FPGA中控制逻辑部分 (VHDL程序) 的工作流程都是根据传感器节点的声通信实现原理设计的。图3为ARM程序的流程图, 图4为FPGA控制逻辑部分的流程图。

3.1 ARM程序设计

ARM程序主要包括发送数据和接收数据两部分, 是根据声通信的实现原理来设计的, 具体的工作流程如图3所示。在程序的设计过程中充分考虑了传感器节点对电能的合理利用, 仅在每次发送或接收数据时通过给电源管理模块发送开启协处理器模块和放大模块电源控制信息来接通协处理器模块和放大模块电源, 而在发送或接收数据完成后又发送相关控制信息将这两个模块的电源关闭。

3.2 FPGA程序设计

FPGA的VHDL程序设计包括了控制逻辑部分、声信号调制部分、声信号解调部分、发送数据FIFO和接收数据FIFO等。控制逻辑部分的设计是与声通信相关的VHDL程序的核心控制部分, 控制逻辑部分需要与ARM程序协调工作才能实现声通信。控制逻辑部分的流程图如图4所示, 主要分为发送和接收数据两部分。通过接收ARM指令来实现接收数据或发送数据, 包括准备发送数据指令、发送数据指令和接收数据指令3条指令。发送数据时根据工作流程控制声信号调制模块工作进行数据流的调制, 声信号调制模块再发送数据到ARM的D/A模块;接收数据是声信号解调模块从ARM的A/D模块读取数据进行解调, 再将解调的数据流送入控制逻辑。

4 系统测试结果与应用

对设计好的传感器节点进行两节点间的声通信测试。综合考虑压电换能器的频率响应特性及所处环境中空气的声信号特性, 为达到较好的声通信效果, DPSK信号设定载波频率为2 940 Hz。

使用Matlab软件对两节点发出的声信号和接收的声信号数据进行分析比较并计算出误码率。为了更好地测试出声通信的效果, 测试在室内和室外两种不同环境中进行: (1) 室内环境:大小为9.5 m×7 m×3.2 m的办公室, 环境音量约50 d B; (2) 室外环境:大小约为110 m×60 m的广场, 环境音量约40 d B。表1为在不同的通信距离下两传感器节点之间的通信误码率。

从统计结果可以看出, 在室外环境中声通信的质量要好于室内环境, 这是由于室外环境噪音干扰相对没有室内严重。该测试表明短距离内该传感器节点的声通信具有较低的误码率, 验证了短距离声通信在无线传感器网络中的可行性。同时从表1可以看出, 传感器节点间声通信的距离还比较短, 为增大传感器节点间声通信的距离, 必须进一步优化节点硬件和软件的设计。

参考水下无线传感器网络的水声通信技术, 提出了可用于无线传感器网络的短距离声通信方案。设计了一种具有短距离声通信功能的传感器节点并对其进行声通信测试。测试结果表明, 短距离声通信在无线传感网络中具有一定的应用前景。参考文献

摘要:在对短距离声通信技术进行研究的基础上, 以ARM为主处理器, 设计了一种具有短距离声通信功能的传感器节点。该节点为这些环境中的无线传感器网络提供了一种不占用无线信道带宽、不受电磁干扰的通信方式。利用所设计的传感器节点实现了两节点间的短距离声通信, 验证了短距离声通信的可行性。

关键词:无线传感器网络,短距离声通信,ARM,传感器节点

参考文献

[1]汪丹丹.矿用无线传感器网络的研究与设计[D].合肥:合肥工业大学, 2007.

[2]SHMULIK M G, GANNOT S, COHEN I.Distributed multiple constraints generalized sidelobe canceler for fully connected wireless acoustic sensor networks[J].IEEE Transactions on Audio Speech and Language Processing, 2013, 21 (2) :343-356.

[3]郭忠文, 罗汉江, 洪锋, 等.水下无线传感器网络的研究进展[J].计算机研究与发展, 2010, 47 (3) :377-389.

[4]EDELMANN C F, ZAJIC A C.Feasibili ty study of underwater acoustic communications between buried and bottommounted sensor network nodes[J].IEEE Journal of Oceanic Engineering, 2013, 38 (1) :109-116.

[5]李云娟, 方彦君, 谭涛.一种水下无线传感器网络节点设计及其ARM实现[J].计算机自动测量与控制, 2011, 19 (5) :1236-1238.

上一篇:视频信号接口下一篇:延迟焦化