高速便攜式RS232/422信號模擬器設(shè)計
2. 3 FPGA核心控制電路模塊設(shè)計
FPGA核心控制電路監(jiān)控以上各電路模塊的工作狀態(tài),隨時準備接收來自它們的數(shù)據(jù)和命令,并進行相應(yīng)的控制。它包括了控制部分和串行數(shù)據(jù)生成部分,控制部分是在FPGA芯片內(nèi)部嵌入Alter公司提供的NIOSⅡ的處理器IP軟核,利用QuartusⅡ軟件內(nèi)部的SOPC工具生成FPGA內(nèi)部的控制電路。串行數(shù)據(jù)生成部分利用VHDL硬件編程語言編制了波特率發(fā)生器和并串轉(zhuǎn)換模塊生成RS232/422串行信號數(shù)據(jù)。所有的控制電路都是通過軟件定制在一片F(xiàn)PGA芯片內(nèi),外圍電路比較簡單,除了正常的程序加載電路和程序存儲芯片,僅需要一片時鐘芯片即可。FPGA核心控制電路原理圖如圖4所示。
3 系統(tǒng)軟件設(shè)計
3.1 波特率和串行數(shù)據(jù)產(chǎn)生模塊設(shè)計
串行數(shù)據(jù)產(chǎn)生模塊負責生成符合格式設(shè)置要求的串行數(shù)據(jù),如起始位,數(shù)據(jù)位,效驗位,停止位等。它主要是把控制器發(fā)送的并行數(shù)據(jù)轉(zhuǎn)換成串行數(shù)據(jù),并根據(jù)控制器發(fā)送的效驗位,停止位等設(shè)置命令來設(shè)置數(shù)據(jù)的格式,以來自波特率產(chǎn)生模塊的16倍的波特率作為全局時鐘,生成要模擬的RS232/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é)合積分分頻電路,設(shè)計了頻率字累加器,通過從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)部程序設(shè)計
傳統(tǒng)的MCU,DSP或ARM等硬處理器或控制器,它們的功能和片內(nèi)外設(shè)都是固化好的,用戶只能使用,而不能做任何改動。而NIOSⅡ處理器是FPGA芯片生成廠商Altera公司無償提供的軟IP核,可以通過QuanusⅡ軟件對它進行設(shè)置,隨時可以添加在片的ROM或RAM,并去掉不必要的外設(shè),使得整個系統(tǒng)的搭建靈活,方便,簡潔。并且,在硬件系統(tǒng)的設(shè)計上,一片F(xiàn)PGA芯片內(nèi)就可以完成整個的數(shù)字控制系統(tǒng),使得硬件系統(tǒng)的設(shè)計非常的簡單可靠,性能也非常的穩(wěn)定。
在本系統(tǒng)的設(shè)計中,NIOSⅡ處理器和傳統(tǒng)的MCU,DSP或ARM等硬處理器或控制器一樣,也可以用C語言編程實現(xiàn)需要的控制功能,也可以嵌入各種嵌入式操作系統(tǒng),并進行調(diào)試等。編程的開發(fā)環(huán)境是專用的NIOS2-IDE集成開發(fā)環(huán)境。
評論