基于ARM与FPGA设计短波发射机自动调谐控制系统
2015-02-05国家新闻出版广电总局无线电台管理局七三一台林大桥
国家新闻出版广电总局无线电台管理局七三一台 林大桥
基于ARM与FPGA设计短波发射机自动调谐控制系统
国家新闻出版广电总局无线电台管理局七三一台 林大桥
本文介绍了采用FPGA和ARM11嵌入式设计短波发射机自动调谐控制系统的方案,重点介绍了该系统硬件电路设计,讨论了ARM11和FPGA之间的通信实现。在Qt环境下设计了短波发射机自动调谐系统的应用软件并在linux操作系统上移植,实现友好的人机界面。利用FPGA实现自动调谐系统中步进电机的控制。
FPGA;嵌入式Linux;自动调谐系统
1 引言
短波(3.9MHZ-26.1MHZ)发射机更换频率时为了保证发射机能工作在所需的频率值,必须对高频回路进行精确的调谐。大功率短波发射机调谐器件均为电感线圈和真空可变电容等大型器件,通过步进电机转动改变其机械转动圈数才可改变调谐器件的电参数,实现调谐回路谐振在所需频率上。为了能够准确的计量出被调器件的机械转动的实际位置(即该位置间接地代表了被调器件的电气参量),每一个传动装置上都装有一个与被调器件机械联动的光电数字增量码盘。码盘转动时输出的脉冲个数累计值即代表了被调器件的机械位置,也即代表被调器件的位置信息(即该位置所对应的被调器件的电气参量)。
于是,自动调谐的过程可被理解为通过(执行电机)传动装置带动被调器件转动,将与被调器件机械联动的增量光电码盘转动过程中输出的脉冲累计值(即被调器件的实际位置)与调谐回路谐振时要求的被调谐器件的预置位置值相等即可。
近年来随着短波发射机自动化、网络化、信息化、智能化的要求,原来采用单片机设计的调谐控制系统因为单片机固有的性能瓶颈制约了调谐系统的性能指标和功能扩展,存在存储容量太小、实时性低、无法实现网络化等缺点,当前,伴随ARM处理器功能的日益强大、性能稳定,采用ARM基于Linux嵌入式与FPGA设计,成为保障和提高自动调谐系统整体功能和性能的最佳方案。
2 基于ARM与FPGA设计的自动调谐控制系统硬件构架
嵌入式自动调谐控制系统主要有Tiny6410嵌入式主板和FPGA数据采集逻辑控制板组成,整个系统硬件结构如图1所示。其中Tiny6410为核心的嵌入式主板是整个系统的控制中心:实现嵌入式的VGA显示器、触摸屏和触摸板实现人机对话;实现调谐器件频率数据库的存储与调取管理;实现与FPGA数据采集逻辑控制板的数据通信;控制FPGA数据采集逻辑控制板数据采集工作。FPGA数据采集逻辑控制板充当系统的“下位机”作用:接受嵌入式主板发来的控制命令,完成步进电机实际位置数据和其他模拟量等相关数据的采集;接收嵌入式主板中存储调谐器件预置位置数据;控制调谐器件的步进电机实际位置自动跟踪预置位置;产生精确控制步进电机的CP脉冲信号及Dir方向信号。
图1 基于ARM11和FPGA的短波自动调谐控制系统硬件构架框图
2.1 Tiny6410嵌入式主板硬件资源特性
Tiny6410嵌入式主板ARM芯片选用了三星公司的S3C6410,其功能强大,性价比高,在目前的嵌入式产品中得到了广泛的应用,其主板硬件资源如下:
(1)CPU处理器:Samsung S3C6410A,ARM1176JZF-S核,主频533MHz,最高667Mhz;
(2)DDR RAM内存:在板标配256M DDR RAM(可选128M);
(3)Flash存储:在板256M/1GB Nand Flash,掉电非易失。
(4)VGA显示:可直接连接4线电阻式触摸屏和VGA显示器;
(5)外扩接口资源:4个串行接口、10Pin间距JTAG接口、20Pin双LCD接口、20Pin间距SDIO接口、30Pin GPIO接口、40Pin 间距系统总线接口;
(6)操作系统支持:Linux2.6.28.6+Qtopia-2.2.0+QtE;WindowsCE.NET6.0。
该嵌入式主板的特点是采用了核心板+底板的形式:其核心板采用了6层板的设计,它集成了256M DDR RAM, MLC NAND Flash(2GB)存储器;底板主要是外设接口,在自动调谐控制系统开发中,根据开发的需要增加或删除外设接口,定做的底板只增加了40芯的系统总线接口,这样减少成本,缩短系统开发周期。
图2 步进电机控制信号的产生
2.2 Tiny6410嵌入式主板与FPGA数据采集逻辑控制板的系统总线
FPGA数据采集逻辑控制板硬件电路主要包括模拟量数据采集电路、小键盘输入电路、测频宽带放大器、激励器控制电路和FPGA芯片组成。嵌入式主板和FPGA数据采集逻辑控制板之间的通信通过40芯系统总线,其中16根数据线、8根地址线和控制线。系统总线的16根数据线经过74LS245双向驱动后与FPGA数据采集逻辑控制板上的所有接口电路连接,接口电路包括大规模可编程FPGA芯片XC3S400、各种IO芯片、AD芯片和DA芯片,从而使得硬件电路大大简化。再通过地址线的译码电路的选择和读/写信号的控制,对相关接口电路进行数据读写操作,实现数据交换。
3 FPGA逻辑控制功能实现
逻辑控制程序的编写基于VHDL语言和原理图结合的方法,采用ISE10.1作为软件设计平台。FPGA的逻辑控制步进电机旋转方向和CP脉冲,将光电码盘采集到的调谐器件实际位置计数器的数值与嵌入式发送过来的步进电机预置位置的数值进行比较,根据比较的结果来控制步进电机的转动方向Dir;比较结果数值的绝对差值大,则送出的加速曲线陡最高的CP脉冲频率高;反之,送出送出的加速曲线缓,最高的CP脉冲频率低,使步进电机按照加速和减速曲线进行控制,实现调谐器件精确定位的目的。
4 自动调谐系统软件方案的设计
Linux是开源的操作系统,它以高效性和灵活性著称,具有多任务的 能力。发射机自动调谐系统是基于linux操作系统下的软件开发,开发完成后把应用程序移植到在Tiny6410板上运行。自动调谐系统软件设计包括驱动程序和应用软件。
4.1 ARM系统总线驱动程序
Linux内核提供了对常规设备的支持:键盘、鼠标、SD卡等等,但并不包含对FPGA数据采集逻辑控制板的硬件资源的支持,ARM通过驱动程序才能够访问FPGA数据采集逻辑控制板的接口电路。接口电路包括大规模可编程FPGA芯片XC3S400、各种IO芯片、AD芯片和DA芯片。这些芯片组需要传输的数据都有独立的锁存器,ARM给这些锁存器都分配了固定的外部地址,对相关接口电路进行数据读写操作,通过系统总线地址线的译码电路的选择和读/写信号的控制,对这些地址的读写也就是实现了对以上这些数据的传递。其流程如图3所示。
图3 系统总线驱动程序流程图
4.2 应用软件的编写
自动调谐控制系统的应用软件在Linux平台采用Qt来编写,应用软件主要实现以下三个功能:良好的人机交互界面;初始化驱动步进电机,实时显示当前每路驱动电机的实际位置,同时显示各种模拟表值;提供自动调谐频率库和频道库的增、删、改、查操作。
Qt是一个跨平台的C ++ 图形用户界面的程序框架,同时是开源的,具有非常强的可移植性,并且Qt提供多达250个以上的C ++ 类,可重用性非常好,给用户的开发带来了极大的方便。并且Linux和Qt都可以在一定的许可权限下免费获得,这极大地降低了系统成本以及提高系统的开放性。我们使用Qt可以在linux操作系统下快速、高效的进行程序开发。同时Qt是一个跨平台的开发工具,我们可以在windows环境下进行开发,然后通过编译后可以直接在linux环境下运行应用程序,自动调谐应用软件流程图4所示。