國家新聞出版廣電總局無線電臺管理局七三一臺 林大橋
基于ARM與FPGA設計短波發(fā)射機自動調諧控制系統(tǒng)
國家新聞出版廣電總局無線電臺管理局七三一臺 林大橋
本文介紹了采用FPGA和ARM11嵌入式設計短波發(fā)射機自動調諧控制系統(tǒng)的方案,重點介紹了該系統(tǒng)硬件電路設計,討論了ARM11和FPGA之間的通信實現(xiàn)。在Qt環(huán)境下設計了短波發(fā)射機自動調諧系統(tǒng)的應用軟件并在linux操作系統(tǒng)上移植,實現(xiàn)友好的人機界面。利用FPGA實現(xiàn)自動調諧系統(tǒng)中步進電機的控制。
FPGA;嵌入式Linux;自動調諧系統(tǒng)
短波(3.9MHZ-26.1MHZ)發(fā)射機更換頻率時為了保證發(fā)射機能工作在所需的頻率值,必須對高頻回路進行精確的調諧。大功率短波發(fā)射機調諧器件均為電感線圈和真空可變電容等大型器件,通過步進電機轉動改變其機械轉動圈數(shù)才可改變調諧器件的電參數(shù),實現(xiàn)調諧回路諧振在所需頻率上。為了能夠準確的計量出被調器件的機械轉動的實際位置(即該位置間接地代表了被調器件的電氣參量),每一個傳動裝置上都裝有一個與被調器件機械聯(lián)動的光電數(shù)字增量碼盤。碼盤轉動時輸出的脈沖個數(shù)累計值即代表了被調器件的機械位置,也即代表被調器件的位置信息(即該位置所對應的被調器件的電氣參量)。
于是,自動調諧的過程可被理解為通過(執(zhí)行電機)傳動裝置帶動被調器件轉動,將與被調器件機械聯(lián)動的增量光電碼盤轉動過程中輸出的脈沖累計值(即被調器件的實際位置)與調諧回路諧振時要求的被調諧器件的預置位置值相等即可。
近年來隨著短波發(fā)射機自動化、網(wǎng)絡化、信息化、智能化的要求,原來采用單片機設計的調諧控制系統(tǒng)因為單片機固有的性能瓶頸制約了調諧系統(tǒng)的性能指標和功能擴展,存在存儲容量太小、實時性低、無法實現(xiàn)網(wǎng)絡化等缺點,當前,伴隨ARM處理器功能的日益強大、性能穩(wěn)定,采用ARM基于Linux嵌入式與FPGA設計,成為保障和提高自動調諧系統(tǒng)整體功能和性能的最佳方案。
嵌入式自動調諧控制系統(tǒng)主要有Tiny6410嵌入式主板和FPGA數(shù)據(jù)采集邏輯控制板組成,整個系統(tǒng)硬件結構如圖1所示。其中Tiny6410為核心的嵌入式主板是整個系統(tǒng)的控制中心:實現(xiàn)嵌入式的VGA顯示器、觸摸屏和觸摸板實現(xiàn)人機對話;實現(xiàn)調諧器件頻率數(shù)據(jù)庫的存儲與調取管理;實現(xiàn)與FPGA數(shù)據(jù)采集邏輯控制板的數(shù)據(jù)通信;控制FPGA數(shù)據(jù)采集邏輯控制板數(shù)據(jù)采集工作。FPGA數(shù)據(jù)采集邏輯控制板充當系統(tǒng)的“下位機”作用:接受嵌入式主板發(fā)來的控制命令,完成步進電機實際位置數(shù)據(jù)和其他模擬量等相關數(shù)據(jù)的采集;接收嵌入式主板中存儲調諧器件預置位置數(shù)據(jù);控制調諧器件的步進電機實際位置自動跟蹤預置位置;產(chǎn)生精確控制步進電機的CP脈沖信號及Dir方向信號。
圖1 基于ARM11和FPGA的短波自動調諧控制系統(tǒng)硬件構架框圖
2.1 Tiny6410嵌入式主板硬件資源特性
Tiny6410嵌入式主板ARM芯片選用了三星公司的S3C6410,其功能強大,性價比高,在目前的嵌入式產(chǎn)品中得到了廣泛的應用,其主板硬件資源如下:
(1)CPU處理器:Samsung S3C6410A,ARM1176JZF-S核,主頻533MHz,最高667Mhz;
(2)DDR RAM內(nèi)存:在板標配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 間距系統(tǒng)總線接口;
(6)操作系統(tǒng)支持:Linux2.6.28.6+Qtopia-2.2.0+QtE;WindowsCE.NET6.0。
該嵌入式主板的特點是采用了核心板+底板的形式:其核心板采用了6層板的設計,它集成了256M DDR RAM, MLC NAND Flash(2GB)存儲器;底板主要是外設接口,在自動調諧控制系統(tǒng)開發(fā)中,根據(jù)開發(fā)的需要增加或刪除外設接口,定做的底板只增加了40芯的系統(tǒng)總線接口,這樣減少成本,縮短系統(tǒng)開發(fā)周期。
圖2 步進電機控制信號的產(chǎn)生
2.2 Tiny6410嵌入式主板與FPGA數(shù)據(jù)采集邏輯控制板的系統(tǒng)總線
FPGA數(shù)據(jù)采集邏輯控制板硬件電路主要包括模擬量數(shù)據(jù)采集電路、小鍵盤輸入電路、測頻寬帶放大器、激勵器控制電路和FPGA芯片組成。嵌入式主板和FPGA數(shù)據(jù)采集邏輯控制板之間的通信通過40芯系統(tǒng)總線,其中16根數(shù)據(jù)線、8根地址線和控制線。系統(tǒng)總線的16根數(shù)據(jù)線經(jīng)過74LS245雙向驅動后與FPGA數(shù)據(jù)采集邏輯控制板上的所有接口電路連接,接口電路包括大規(guī)模可編程FPGA芯片XC3S400、各種IO芯片、AD芯片和DA芯片,從而使得硬件電路大大簡化。再通過地址線的譯碼電路的選擇和讀/寫信號的控制,對相關接口電路進行數(shù)據(jù)讀寫操作,實現(xiàn)數(shù)據(jù)交換。
邏輯控制程序的編寫基于VHDL語言和原理圖結合的方法,采用ISE10.1作為軟件設計平臺。FPGA的邏輯控制步進電機旋轉方向和CP脈沖,將光電碼盤采集到的調諧器件實際位置計數(shù)器的數(shù)值與嵌入式發(fā)送過來的步進電機預置位置的數(shù)值進行比較,根據(jù)比較的結果來控制步進電機的轉動方向Dir;比較結果數(shù)值的絕對差值大,則送出的加速曲線陡最高的CP脈沖頻率高;反之,送出送出的加速曲線緩,最高的CP脈沖頻率低,使步進電機按照加速和減速曲線進行控制,實現(xiàn)調諧器件精確定位的目的。
Linux是開源的操作系統(tǒng),它以高效性和靈活性著稱,具有多任務的 能力。發(fā)射機自動調諧系統(tǒng)是基于linux操作系統(tǒng)下的軟件開發(fā),開發(fā)完成后把應用程序移植到在Tiny6410板上運行。自動調諧系統(tǒng)軟件設計包括驅動程序和應用軟件。
4.1 ARM系統(tǒng)總線驅動程序
Linux內(nèi)核提供了對常規(guī)設備的支持:鍵盤、鼠標、SD卡等等,但并不包含對FPGA數(shù)據(jù)采集邏輯控制板的硬件資源的支持,ARM通過驅動程序才能夠訪問FPGA數(shù)據(jù)采集邏輯控制板的接口電路。接口電路包括大規(guī)??删幊蘁PGA芯片XC3S400、各種IO芯片、AD芯片和DA芯片。這些芯片組需要傳輸?shù)臄?shù)據(jù)都有獨立的鎖存器,ARM給這些鎖存器都分配了固定的外部地址,對相關接口電路進行數(shù)據(jù)讀寫操作,通過系統(tǒng)總線地址線的譯碼電路的選擇和讀/寫信號的控制,對這些地址的讀寫也就是實現(xiàn)了對以上這些數(shù)據(jù)的傳遞。其流程如圖3所示。
圖3 系統(tǒng)總線驅動程序流程圖
4.2 應用軟件的編寫
自動調諧控制系統(tǒng)的應用軟件在Linux平臺采用Qt來編寫,應用軟件主要實現(xiàn)以下三個功能:良好的人機交互界面;初始化驅動步進電機,實時顯示當前每路驅動電機的實際位置,同時顯示各種模擬表值;提供自動調諧頻率庫和頻道庫的增、刪、改、查操作。
Qt是一個跨平臺的C ++ 圖形用戶界面的程序框架,同時是開源的,具有非常強的可移植性,并且Qt提供多達250個以上的C ++ 類,可重用性非常好,給用戶的開發(fā)帶來了極大的方便。并且Linux和Qt都可以在一定的許可權限下免費獲得,這極大地降低了系統(tǒng)成本以及提高系統(tǒng)的開放性。我們使用Qt可以在linux操作系統(tǒng)下快速、高效的進行程序開發(fā)。同時Qt是一個跨平臺的開發(fā)工具,我們可以在windows環(huán)境下進行開發(fā),然后通過編譯后可以直接在linux環(huán)境下運行應用程序,自動調諧應用軟件流程圖4所示。