國家新聞出版廣電總局無線電臺管理局七三一臺 林大橋
基于ARM與FPGA設計短波發射機自動調諧控制系統
國家新聞出版廣電總局無線電臺管理局七三一臺 林大橋
本文介紹了采用FPGA和ARM11嵌入式設計短波發射機自動調諧控制系統的方案,重點介紹了該系統硬件電路設計,討論了ARM11和FPGA之間的通信實現。在Qt環境下設計了短波發射機自動調諧系統的應用軟件并在linux操作系統上移植,實現友好的人機界面。利用FPGA實現自動調諧系統中步進電機的控制。
FPGA;嵌入式Linux;自動調諧系統
短波(3.9MHZ-26.1MHZ)發射機更換頻率時為了保證發射機能工作在所需的頻率值,必須對高頻回路進行精確的調諧。大功率短波發射機調諧器件均為電感線圈和真空可變電容等大型器件,通過步進電機轉動改變其機械轉動圈數才可改變調諧器件的電參數,實現調諧回路諧振在所需頻率上。為了能夠準確的計量出被調器件的機械轉動的實際位置(即該位置間接地代表了被調器件的電氣參量),每一個傳動裝置上都裝有一個與被調器件機械聯動的光電數字增量碼盤。碼盤轉動時輸出的脈沖個數累計值即代表了被調器件的機械位置,也即代表被調器件的位置信息(即該位置所對應的被調器件的電氣參量)。
于是,自動調諧的過程可被理解為通過(執行電機)傳動裝置帶動被調器件轉動,將與被調器件機械聯動的增量光電碼盤轉動過程中輸出的脈沖累計值(即被調器件的實際位置)與調諧回路諧振時要求的被調諧器件的預置位置值相等即可。
近年來隨著短波發射機自動化、網絡化、信息化、智能化的要求,原來采用單片機設計的調諧控制系統因為單片機固有的性能瓶頸制約了調諧系統的性能指標和功能擴展,存在存儲容量太小、實時性低、無法實現網絡化等缺點,當前,伴隨ARM處理器功能的日益強大、性能穩定,采用ARM基于Linux嵌入式與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芯片,從而使得硬件電路大大簡化。再通過地址線的譯碼電路的選擇和讀/寫信號的控制,對相關接口電路進行數據讀寫操作,實現數據交換。
邏輯控制程序的編寫基于VHDL語言和原理圖結合的方法,采用ISE10.1作為軟件設計平臺。FPGA的邏輯控制步進電機旋轉方向和CP脈沖,將光電碼盤采集到的調諧器件實際位置計數器的數值與嵌入式發送過來的步進電機預置位置的數值進行比較,根據比較的結果來控制步進電機的轉動方向Dir;比較結果數值的絕對差值大,則送出的加速曲線陡最高的CP脈沖頻率高;反之,送出送出的加速曲線緩,最高的CP脈沖頻率低,使步進電機按照加速和減速曲線進行控制,實現調諧器件精確定位的目的。
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所示。