高速便攜式RS 232/422信號模擬器設計
為了飛行試驗中機載測試設備或儀器外場排故的需要,利用FPGA和USB接口技術(shù)成功設計了可模擬當前各種飛機RS 232/422總線信號的高速便攜式模擬器。該信號模擬器能產(chǎn)生24種標準或者非標準波特率的RS 232/422信號,擁有USB接口、鍵盤和LED顯示屏等功能,具有設置簡便,使用靈活,可靠性高以及耗電量低等特點。
0引言
隨著我國航空技術(shù)的不斷發(fā)展,我國新研制了眾多不同型號和不同用途的飛機。這些飛機以及這些飛機上電子設備之間采用的RS 232和RS 422格式傳輸?shù)臄?shù)據(jù)總線也有了極大的發(fā)展。它們傳輸數(shù)據(jù)的數(shù)據(jù)位、校驗位、停止位、波特率及傳輸?shù)男畔K形式各不相同,尤其波特率,已經(jīng)從當初的幾十Kb/s發(fā)展到現(xiàn)在的上百Kb/s甚至上Mb/s.這就需要研制一種高速RS 232/422信號模擬器,它能夠模擬我國現(xiàn)有飛機及機上設備采用RS 232或RS 422格式進行相互通信的RS 232/422總線數(shù)據(jù),為機載測試工程師在試驗室對機上采集RS 232或RS 422信號的設備進行通電和編程驗證,以及外場機上排故時提供方便可靠而又靈活的RS 232/422信號模擬器。
1系統(tǒng)總體方案設計
RS 232/422信號模擬器主要由USB接口、鍵盤顯示、電源管理、RS 232/422信號電平轉(zhuǎn)換和FPGA核心控制這幾部分電路模塊組成。USB接口電路主要功能是和上位計算機通過USB接口建立連接,把上位計算機發(fā)送數(shù)據(jù)傳送到FPGA核心控制電路,或者把FPGA核心控制電路發(fā)送的數(shù)據(jù)傳送到上位計算機。鍵盤顯示電路主要功能是當信號模擬器脫離PC機獨立工作時,通過鍵盤輸入命令和數(shù)據(jù),并在LED顯示屏上觀察輸入的命令和數(shù)據(jù)是否正確,并可以在接收時能察看接收到的數(shù)據(jù),以判斷接收到的數(shù)據(jù)正確與否;此外,它還可以實時顯示電源的狀態(tài)和電池的電量等信息。電源管理主要是對供電源頭進行排序和自動選擇,同時監(jiān)控電池的電量信息,并把這些信息傳送給FPGA核心控制電路。
RS 232/422信號電平轉(zhuǎn)換電路主要功能則是把TTL或CMOS電平轉(zhuǎn)換成符合要求電平傳送出去,或者把接收到的RS232或RS 422標準的信號電平轉(zhuǎn)換成TTL或COMS電平,同時在不工作時使這些電路處于睡眠狀態(tài),以降低功耗。FPGA核心控制電路是本硬件系統(tǒng)的核心,它對以上部分的電路系統(tǒng)進行統(tǒng)一管理,監(jiān)控所有電路的工作狀態(tài),并隨接收來自這些電路的數(shù)據(jù)信息,根據(jù)這些信息做出不同的處理,如果需要的話,并把部分結(jié)果在LED顯示屏或者上位計算機屏幕上顯示出來,供操縱者參考。本信號仿真器的硬件系統(tǒng)電路原理框圖如圖1所示。
2主要電路模塊設計
2.1 USB接口電路模塊設計
USB(Universal Serial Bus,(計算機)通用串行總線)是計算機和外圍設備連接的最常用,也是最方便的總線接口,它支持熱插拔和即插即用,應用靈活,易于升級,全速率傳輸可達12 Mb/s,而高速傳輸達480 Mb/s,并且它同時可以向外圍設備提供耗電電流不大于500 mA的5 V電源。在本信號仿真器中,USB接口不僅僅具有和信號仿真器交換數(shù)據(jù)的任務,同時還向信號源提供5 V的直流供電的功能。通過USB接口,上位計算機依靠用戶界面程序?qū)π盘柗抡嫫鞯墓ぷ鳡顟B(tài)、模擬的信號格式和信息塊內(nèi)容進行沒置;當處于接收工作狀態(tài)時,還可以把接收到的數(shù)據(jù)實時顯示在計算機屏幕上。在設計中,本文采用了FTDI公司的FT245RL芯片作為主要的接口協(xié)議處理芯片,它本身集成了協(xié)議處理的固件程序,并且FTDI公司網(wǎng)站上也提供了此芯片的驅(qū)動程序,縮小了開發(fā)難度,加快了開發(fā)時間和成本。USB接口電路模塊的電路原理圖如圖2所示。
2. 2電源管理電路模塊設計
信號模擬器既有USB接口供電,也有AC/DC適配器供電,同時還有著電池供電,這里供電電源的管理顯得異常重要。在電源管理電路的設計中,首先要有電源排序和自動切換電路,當同時存在這三個電路供電時,要求能自動切斷AC/DC和電池供電,無縫的轉(zhuǎn)向USB供電。當USB接口不供電時,轉(zhuǎn)向了AC/DC適配器供電,最后才是電池供電。整個過程的供電順序是USB供電→AC/DC供電→電池;其次是要求能夠?qū)╇婋娐返臓顟B(tài)和信息進行監(jiān)控。電源管理電路模塊要求能提供供電是來自USB接口、AC/DC適配器或是電池的信息,當是電池供電時,還需要提供電池的電量信息,即電池還剩余多少電量;最后,還要有鋰離子充電電池的放電和充電的管理。為保護鋰離子電池因過度放電而無法再次使用,當電池放電到終止電壓時,自動切斷供電電路,使電池供電電路處于斷開狀態(tài)。當插入AC/DC適配器和USB接口供電時,電源管理電路模塊可以對電池進行充電,同時,電池的放電是一個電源逐漸衰減的過程,還需要對電源進行穩(wěn)壓。鑒于這些原因,電源管理電路模塊的設計是本文的重難點之一。本系統(tǒng)中電源管理電路模塊原理圖如圖3所示。
2. 3 FPGA核心控制電路模塊設計
FPGA核心控制電路監(jiān)控以上各電路模塊的工作狀態(tài),隨時準備接收來自它們的數(shù)據(jù)和命令,并進行相應的控制。它包括了控制部分和串行數(shù)據(jù)生成部分,控制部分是在FPGA芯片內(nèi)部嵌入Alter公司提供的NIOSⅡ的處理器IP軟核,利用QuartusⅡ軟件內(nèi)部的SOPC工具生成FPGA內(nèi)部的控制電路。串行數(shù)據(jù)生成部分利用VHDL硬件編程語言編制了波特率發(fā)生器和并串轉(zhuǎn)換模塊生成RS 232/422串行信號數(shù)據(jù)。所有的控制電路都是通過軟件定制在一片F(xiàn)PGA芯片內(nèi),外圍電路比較簡單,除了正常的程序加載電路和程序存儲芯片,僅需要一片時鐘芯片即可。FPGA核心控制電路原理圖如圖4所示。
3系統(tǒng)軟件設計
3.1波特率和串行數(shù)據(jù)產(chǎn)生模塊設計
串行數(shù)據(jù)產(chǎn)生模塊負責生成符合格式設置要求的串行數(shù)據(jù),如起始位,數(shù)據(jù)位,效驗位,停止位等。它主要是把控制器發(fā)送的并行數(shù)據(jù)轉(zhuǎn)換成串行數(shù)據(jù),并根據(jù)控制器發(fā)送的效驗位,停止位等設置命令來設置數(shù)據(jù)的格式,以來自波特率產(chǎn)生模塊的16倍的波特率作為全局時鐘,生成要模擬的RS 232/422信號數(shù)據(jù)。
波特率產(chǎn)生模塊根據(jù)控制器發(fā)送的命令數(shù)據(jù)來產(chǎn)生符合要求的波特率。在本系統(tǒng)中,要求產(chǎn)生24種標準和非標準的波特率,其中標準的波特率16種,非標準波特率8種,最高的波特率達到1 Mb/s,這樣利用常規(guī)的分頻器不能滿足要求。
依據(jù)DDS(直接數(shù)字頻率合成)的原理,結(jié)合積分分頻電路,設計了頻率字累加器,通過從NIOSⅡ控制器輸入的頻率字來控制累加器的累加步長,將累加器輸出的最高位作為輸出的時鐘信號的方法實現(xiàn)所需要的波特率時鐘,此時輸出的時鐘即可作為串行數(shù)據(jù)產(chǎn)生模塊的全局時鐘,也就是16倍的波特率。同時為了提高時鐘的精確度,降低誤碼率,在系統(tǒng)時鐘(這里采用的是22 11 8 4 MHz)進入分頻器以前,利用PLL倍頻電路提高時鐘的頻率。
波特率和串行數(shù)據(jù)產(chǎn)生模塊在FPGA內(nèi)部的原理實現(xiàn)框圖如5圖所示。它的實現(xiàn)是采用VHDL硬件描述語言實現(xiàn)的,框圖中每個小的模塊代表VHDL語言編制的模塊程序。
3.2 NIOSⅡ控制器系統(tǒng)定制和內(nèi)部程序設計
傳統(tǒng)的MCU,DSP或ARM等硬處理器或控制器,它們的功能和片內(nèi)外設都是固化好的,用戶只能使用,而不能做任何改動。而NIOSⅡ處理器是FPGA芯片生成廠商Altera公司無償提供的軟IP核,可以通過QuanusⅡ軟件對它進行設置,隨時可以添加在片的ROM或RAM,并去掉不必要的外設,使得整個系統(tǒng)的搭建靈活,方便,簡潔。并且,在硬件系統(tǒng)的設計上,一片F(xiàn)PGA芯片內(nèi)就可以完成整個的數(shù)字控制系統(tǒng),使得硬件系統(tǒng)的設計非常的簡單可靠,性能也非常的穩(wěn)定。
在本系統(tǒng)的設計中,NIOSⅡ處理器和傳統(tǒng)的MCU,DSP或ARM等硬處理器或控制器一樣,也可以用C語言編程實現(xiàn)需要的控制功能,也可以嵌入各種嵌入式操作系統(tǒng),并進行調(diào)試等。編程的開發(fā)環(huán)境是專用的NIOS2-IDE集成開發(fā)環(huán)境。
NIOSⅡ處理器內(nèi)部程序主要完成USB與PC機之間的通信協(xié)議,依據(jù)PC機發(fā)送的設置命令來完成具體RS 232/422信號的實現(xiàn),并完成數(shù)據(jù)格式的設置,數(shù)據(jù)塊的設置,數(shù)據(jù)下行發(fā)送和上行傳輸及信號源工作狀態(tài)的顯示。其內(nèi)部程序流程圖如圖6所示。
3. 3用戶界面程序設計
信號仿真器在PC機端的軟件設計包括設備驅(qū)動程序和用戶程序兩部分,F(xiàn)TDI公司為基于FT245RL的USB接口設備提供了VCP、D2XX(動態(tài)鏈接庫)兩種驅(qū)動程序,這樣就不再需要自己設計設備驅(qū)動程序,而只需要選擇不同的驅(qū)動程序,可以把主要精力投入在用戶軟件設計上面。
底層驅(qū)動程序主要完成上位計算機和硬件設備的連接功能,并為用戶界面程序建立和信號源仿真器相互通信的通信協(xié)議和通道,其結(jié)構(gòu)框圖如圖7所示。
用戶界面程序主要完成用戶對模擬信號源進行的工作模式選擇,信號種類選擇,數(shù)據(jù)格式設置和消息塊格式設置的輸入功能,同時可以預覽信號源發(fā)送的信號數(shù)據(jù),讀取信號源接收到的數(shù)據(jù),并可以對存貯數(shù)據(jù)的FLASH芯片進行擦除。依據(jù)其要完成的功能,其流程圖如圖8所示。
4結(jié)語
本文研制的高速RS 232/422信號仿真器,即可以由計算機通過USB接口控制使用,也可以依靠自身攜帶的電池、鍵盤和LED顯示屏獨立工作。它在設計中采用了FPGA技術(shù),免除了程序跑飛的可能,提供了高速的,多種標準和非標準的波特率,靈活的數(shù)據(jù)格式和信息塊格式設置,是機載測試采集器采集RS 232/422信號進行實驗室通電或外場排除RS 232/422總線數(shù)據(jù)故障時比較理想的選擇。