贺 刚,柏 鹏,彭卫东,王明芳,韩立峰,赵学军,高升强
(1.空军工程大学 科研部 信息中心,西安 710051;2.空军工程大学 导弹学院,陕西 三原 713800;3.西安陆军学院,西安 710108)
当前,以硬件描述语言为工具、逻辑器件为载体的系统设计越来越广泛。在设计中,状态机是最典型、应用最广泛的电路模块,其在运行速度的高效、执行时间的确定性和高可靠性方面都显现出强大的优势[1]。
状态机的设计思想已经在各个领域均有广泛的应用,文献[2]在离子注入机设计中采用状态机设计方法。文献[2,3]提出了引入状态机设计主要有3个方面的原因:实现快速建模、提高代码复用率和管理大量并发控制流程。有限状态机(Finite State Machine,FSM)是根据当前状态以及触发条件进行状态转换的一种机制,包含一组状态集(state)、一个起始状态(start state)、一组输入符号集(alphabet)、一个映射输入符号和当前状态到下一状态的输换函数(transition function)的计算模型[2,3]。
本文对QPSK调制发送系统的帧格式的特征进行了分析,结合有限状态机的模型特征,调制系统的各部分组成数据(同步头数据、标志位数据、相位校正数据、正文数据)对应于有限状态机模型中的状态集,根据触发条件,相应地将所需数据块依次发送。由于有限状态机是一种具有离散输入输出系统的模型,由有限的状态和相互之间的转移条件构成,在任何时候都只能处于给定数目状态中的一个,因此采用这种设计方法能稳定可靠地按需求将各数据块进行发送。
所设计的QPSK调制系统[4-6]中,发送的数据帧格式如图1所示。
图1 帧格式Fig.1 Frame format
由图1可知,本通信系统一帧数据由同步头数据和正文数据组成,其中同步头数据为16个63位的m伪码序列,由捕获、频偏估计和标志位三部分组成,其中捕获占7个63位的m序列,频偏估计占8个63位的m序列,标志位占1个63位的m序列;正文数据由25个数据包组成,每个数据包由256 bit组成,其中16 bit用于相位校正,240 bit为数据正文。
在QPSK调制器设计中,在发信机端需按顺序将同步头数据、标志位数据、相位校正数据、正文数据依次发送,在接收端才能根据数据格式将数据正确进行接收解调。因此,根据有限状态机能有效管理各个事件顺序执行的功能,在本设计的发送模块中采用有限状态机的设计方法,通过有限状态机描述的逻辑可以有效地分配各数据模块的发送顺序,以符合通信系统要求的数据帧格式。
没有采用FSM设计的传统的发送系统因为没有对系统要进入的下一状态进入严格的约束,系统发送数据的各状态间不能达到无缝链接,可能会导致状态的紊乱。而采用FSM设计方法,系统在任何时候都只能处于给定数目状态中的一个,因此能保证系统能稳定可靠地工作。以下对状态机的具体设计进行分析。
根据系统硬件设计需求,系统时钟采用12MHz。发送模块组成结构如图2所示。
图2 系统结构图Fig.2 Structure of system
根据图2中系统的组成结构,采用了FSM的设计方法。FSM可以用有向图来表示,用节点表示某个特定的状态,用一条有向线表示状态的转移,线上的字母代表的是状态的转移条件,本系统设计中发送的状态转移图如图3所示。
图3 系统状态转移图Fig.3 State shift of system
图中,状态1“idle”为系统起始状态,表示系统空闲,其工作流程描述如下:
(1)当系统复位开关“reset=1”时,系统复位,各值置零,系统进入空闲状态;
(2)当“reset=0”时,系统由空闲状态转入发送数据状态,首先进入同步头数据模块,开始发送同步头数据,当计数满则进入标志位数据模块,否则继续发送同步头数据;
(3)进入标志位数据发送模块后,若计数满则进入相位校正数据模块,否则继续发送标志位数据;
(4)进入相位校正数据发送模块以后,若计数满则进入正文数据发送模块,否则继续发送相位校正数据;
(5)进入正文数据发送以后,若计数满则进入第二轮数据发送,即转到标志位数据发送模块,否则继续发送正文数据;
(6)按上述顺序,依次发送数据满25轮即发送完25个数据包之后,系统重新开始进入空闲状态。
根据系统发送框图设计的主控程序状态机实现的VHDL核心代码[7,8]如下:
系统实现在FPGA内完成,选用的开发工具为Xilinx公司的 ISE11平台,器件为 virtex5系列xc5vsx95t-2ff1136,实现的结果如图4所示,其中,clk为系统时钟,reset为系统复位信号,dout-cntsyn、dout-cnt-flag、dout-cnt-phase 和 dout-cnt-cont分别表示同步头数据、标志位数据、相位较正数据和正文数据,dout为将各部分数据按顺序发送的结果。
图4 FPGA实现结果图Fig.4 Implementation result with FPGA
以FSM作为系统主控程序的编程模型[9,10],实现了软件单元的功能定义和控制逻辑分离,提高了系统重构的柔性,描述了具有逻辑顺序的事件,有效地管理同步头数据、标志位数据、相位校正数据、正文数据执行的步骤。
本文论述了有限状态机设计思想的基本原理,分析了QPSK调制系统中发送数据的帧格式,研究了如何使发送系统各组成模块的数据有序进行发送,达到模块间的无缝链接,提出了采用有限状态机的设计方法,最后在Xininx公司的FGPA芯片上实现了发送模块中同步头数据、标志位数据、相位校正数据、正文数据的有序发送。这样的设计使系统发送模块工作稳定可靠,完全满足通信中数据发送的的需求。该设计思想非常适用于管理大量并发控制流程的系统设计。
[1]王巍,高德远.有限状态机设计策略[J].计算机工程与应用,1999(7):54-55.WANG Wei,GAO De-yuan.DesignStrategy for Finite State Machine[J].Computer Engineering and Applications,1999(7):54-55.(in Chinese)
[2]罗宏洋.状态机在离子注入机中的应用[J].电子工业专用设备,2009,38(9):49-53.LUO Hong-yang.Application of FSM in Ion Implanter[J].Equipment for Electronic Products Marufacturing,2009,38(9):49-53.(in Chinese)
[3]马洁海,高光来.可复用的状态模式设计[J].内蒙古大学学报(自然科学版),2004,35(5):576-582.MA Jie-hai,GAO Guang-lai..A Reusable Design of State Patten[J].Acta Scientiarum Naturalium Universitatis Neimongol(Natural Science Edition),2004,35(5):576-582.(in Chinese)
[4]Erich Gamma.设计模式[M].李英军,马晓星,蔡敏,等,译.北京:机械工业出版社,2000:78-80.Erich Gamma.Design Mode[M].Translated by LI Yingjun,MA Xiao-xing,CAI Min,et al.Beijing:Press of Engine Industry,2000:78-80.(in Chinese)
[5]Beek J D,Ove Edfors,MagnusSandell.On channel Estimation inOFDM Systems[C]//Proceedings of 1995IEEE 45th Vehicular Technology Conference.Chicago:IEEE,1995:815-819.
[6]Li Y.Pilot-symbol-aided channel estimation for OFD M in wireless systems[C]//Proceedings of 1995 IEEE 49th Vehicular Technology Conference.Houston,TX,USA:IEEE:1131-1135.
[7]高雪平,官伯然,汪海勇.QPSK调制解调的系统仿真实验[J].杭州电子科技大学学报,2006,26(5):52-55.GAO Xue-ping,GUAN Bo-ran,WANG Hai-yong.The Experiment of QPSK Modulation and Demodulation Simulation[J].Journal of Hangzhou Dianzi University,2006,26(5):52-55.(in Chinese)
[8]罗力凡,常春藤.基于VHDL的FPGA开发快速入门.技巧.实例[M].北京:人民邮电出版社,2009:105-109.LUO Li-fan,CHANG Chun-teng.Rudimental,Skill and Example of FPGA Design Based VHDL[M].Beijing:People′s Posts and Telecommunications Press,2009:105-109.(in Chinese)
[9]SYNARIO.VHDL Reference Manual[M].Redmond:Microsoft Corporation,1997:2-9.
[10]刘凌,胡永生.数字信号处理的FPGA实现[M].北京:清华大学出版社,2003:272-278.LIU Ling,HU Yong-sheng.Implement of Digital Signals Process with FPGA[M].Beijing:Tsinghua University Press,2003:272-278.(in Chinese)