1 前言
近年来,随着半导体工艺技术和设计方法的迅速发展,系统级芯片SOC的设计得以高速发展,这已成为业界热点。但是,由于SOC产品设计具有开发周期相对较长、高成本和高风险等特点,对市场的变化非常敏感,这使得SOC在消费电子、汽车电子、工业设计领域的发展进程仍然缓慢。与此同时,当今的制造工艺能够提供更多更高速的逻辑、更快的1/O和更低价位的新一代可编程逻辑器件,现场可编程门阵列(FPGA)己然进入嵌入式应用领域,高性能FPGA也不再局限于引进系统粘合逻辑,也可作为SOC平台,而在过去,由于性能缘故,只有专用集成电路(ASIC)或专用标准产品(ASSP)才能达到相应的要求。不仅如此,由于FPGA的现场可编程特征,它己成为更具灵活性和广泛性发展前景的工业设计平台。
FPGA可轻易地被修改变更、修复缺陷,或在用户需要升级和配合市场发展时去创制未来的衍生产品。这一趋势在工业无线通信设计方面更加明显。当考虑到上市时间、实施灵活性及未来过时等问题时,采用FPGA作为专用芯片设计是一个最佳的项目实施方案。
基于摩尔斯信号的通信是人类最早的无线通信方式,它仍应用在海事移动通信、航空移动通信、广播、卫星通信当中。由于摩尔斯电码信号通信的传统性、经济性和有效性,它在海事移动通信中仍占主导地位,特别是船与船、船与岸、岸与船之间的摩尔斯通信更是占据通信业务总量的80%以上。
基于PC机的MORSE电码信号自动处理己经实现,但在海事移动通信中,它还是受到一些客观条件的约束,缺泛方便性和灵活性。本文从基于FPGA平台的专用芯片设计技术入手,分析和设计了一种摩尔斯电码的无线通信发射模块设计方案,并对设计进行了仿真验证。
2 可编程逻辑电路设计方法
基于可编程逻辑电路的设计基本方法,一种是传统的系统硬件电路设计方法,它是采用自下而上(bottom-up)的设计方法。另一种就是20世纪80年代开始兴起的EDA(Electronic Design Automation)硬件电路设计方法。
随着大规模专用集成电路的开发和研制,为了提高开发效率和增加己有开发成果的可继承性,以及缩短开发时间,各种新兴的EDA工具开始出现,特别是硬件描述语言HDL(Hardware Description Language)的出现,使得传统的硬件电路设计方法发生了巨大的变革,新兴的EDA设计方法采用了自上而下(top-down) 的设计方法。所谓自上而下的设计方法就是从系统总体要求出发,自上而下地逐步将设计内容细化,最后完成系统硬件的整体设计。利用语言对系统硬件电路的自上而下设计一般分为三个层次:第一个层次为行为描述,它是对整个系统的数学模型的描述;第二层次是寄存器传输描述RTL,又称为数据流描述; 第三层是逻辑综合。
利用逻辑综合工具,可将RTL方式描述的程序转换成为用基本逻辑元件表示的文件一门级网表,也可将综合结果以逻辑原理图方式输出,也就是说逻辑综合结果相当于在人工设计硬件电路时,根据系统要求画出了系统的逻辑电原理图。再对逻辑综合结果在门电路级上进行仿真,并检查定时关系,如果一切正常,那么系统的硬件设计基本结束。自上而下设计系统硬件的过程如图一所示。
图一:自上而下设计系统硬件的过程
由逻辑综合工具产生门级网表后,在最终完成硬件设计时,还可以有两种选择:一种是由自动布线程序将网表转换成相应的ASIC芯片的制造工艺,定制ASIC芯片;第二种是将网表转换成相应的PLD编程码点,利用PLD器件完成硬件电路的设计。
3 基于FPGA的摩尔斯码功能结构设计
摩尔斯电码被视为一种开关键控的数据模式,摩尔斯电码中的‘划’比‘点’的时间长3~4倍,不同的‘点’和‘划’组合形成长短不一的摩尔斯电码,不同的摩尔斯电码表示不同的电报符号。发信者先将所要传递的文字翻译成电报符号,再利用电报机发送出去,收信者将收到的电报符号翻译成报文,以此实现无线文字的传播。目前通过微机模拟的方法实现摩尔斯码信号的自动处理,使无线摩尔斯码信号数据进入计算机信息网的方案已得到解决,利用微机处理摩尔斯的方案是先通过软件编程的方法将ASCLL码进行摩尔斯编码,然后通过微机并口发送摩尔斯电码信号,接收时,先通过声频卡来识别接收摩尔斯电码信号,最后通过软件解码成ASCLL码,此方法在成本相对较高,在实际应用中缺乏方便性和灵活性。
根据海洋通信业务的要求,MORSE码处理系统功能定义为:其一、根据指令自动编码、串行发送MORSE码。即根据指令可自动提取ASCLL码,再将ASCLL码自动编码成摩尔斯编码,将编好的MORSE码自动串行发送输出。其二、根据指令自动接收、解码摩尔斯码,并将ASCLL码送入系统。即根据指令自动接收摩尔斯码输入,将接收的摩尔斯码自动解码成ASCLL码。将ASCLL码存储至目标地址或送入系统处理。
通过对摩尔斯码特点的研究可知,在设计摩尔斯码收发模块中必须要有能接收和发送摩尔斯码信息帧的串行异步通信模块。首先,该串行通信模块在指令的控制下,要具有摩尔斯码的自动发送能力,同时具有MORSE码的识别接收能力,因为摩尔斯码串行异步帧的起始位和停止位都不同于ASCLL码串行异步帧,并且不同的摩尔斯码串行帧长度也不一样。二是摩尔斯码的解码和编码问题,因为计算机内核是以ASCLL码为信息交换码的。