高速便攜式RS232/422信號(hào)模擬器設(shè)計(jì)
2. 3 FPGA核心控制電路模塊設(shè)計(jì)
FPGA核心控制電路監(jiān)控以上各電路模塊的工作狀態(tài),隨時(shí)準(zhǔn)備接收來自它們的數(shù)據(jù)和命令,并進(jìn)行相應(yīng)的控制。它包括了控制部分和串行數(shù)據(jù)生成部分,控制部分是在FPGA芯片內(nèi)部嵌入Alter公司提供的NIOSⅡ的處理器IP軟核,利用QuartusⅡ軟件內(nèi)部的SOPC工具生成FPGA內(nèi)部的控制電路。串行數(shù)據(jù)生成部分利用VHDL硬件編程語(yǔ)言編制了波特率發(fā)生器和并串轉(zhuǎn)換模塊生成RS232/422串行信號(hào)數(shù)據(jù)。所有的控制電路都是通過軟件定制在一片F(xiàn)PGA芯片內(nèi),外圍電路比較簡(jiǎn)單,除了正常的程序加載電路和程序存儲(chǔ)芯片,僅需要一片時(shí)鐘芯片即可。FPGA核心控制電路原理圖如圖4所示。
3 系統(tǒng)軟件設(shè)計(jì)
3.1 波特率和串行數(shù)據(jù)產(chǎn)生模塊設(shè)計(jì)
串行數(shù)據(jù)產(chǎn)生模塊負(fù)責(zé)生成符合格式設(shè)置要求的串行數(shù)據(jù),如起始位,數(shù)據(jù)位,效驗(yàn)位,停止位等。它主要是把控制器發(fā)送的并行數(shù)據(jù)轉(zhuǎn)換成串行數(shù)據(jù),并根據(jù)控制器發(fā)送的效驗(yàn)位,停止位等設(shè)置命令來設(shè)置數(shù)據(jù)的格式,以來自波特率產(chǎn)生模塊的16倍的波特率作為全局時(shí)鐘,生成要模擬的RS232/422信號(hào)數(shù)據(jù)。
波特率產(chǎn)生模塊根據(jù)控制器發(fā)送的命令數(shù)據(jù)來產(chǎn)生符合要求的波特率。在本系統(tǒng)中,要求產(chǎn)生24種標(biāo)準(zhǔn)和非標(biāo)準(zhǔn)的波特率,其中標(biāo)準(zhǔn)的波特率16種,非標(biāo)準(zhǔn)波特率8種,最高的波特率達(dá)到1 Mb/s,這樣利用常規(guī)的分頻器不能滿足要求。
依據(jù)DDS(直接數(shù)字頻率合成)的原理,結(jié)合積分分頻電路,設(shè)計(jì)了頻率字累加器,通過從NIOSⅡ控制器輸入的頻率字來控制累加器的累加步長(zhǎng),將累加器輸出的最高位作為輸出的時(shí)鐘信號(hào)的方法實(shí)現(xiàn)所需要的波特率時(shí)鐘,此時(shí)輸出的時(shí)鐘即可作為串行數(shù)據(jù)產(chǎn)生模塊的全局時(shí)鐘,也就是16倍的波特率。同時(shí)為了提高時(shí)鐘的精確度,降低誤碼率,在系統(tǒng)時(shí)鐘(這里采用的是22 11 8 4 MHz)進(jìn)入分頻器以前,利用PLL倍頻電路提高時(shí)鐘的頻率。
波特率和串行數(shù)據(jù)產(chǎn)生模塊在FPGA內(nèi)部的原理實(shí)現(xiàn)框圖如5圖所示。它的實(shí)現(xiàn)是采用VHDL硬件描述語(yǔ)言實(shí)現(xiàn)的,框圖中每個(gè)小的模塊代表VHDL語(yǔ)言編制的模塊程序。
3.2 NIOSⅡ控制器系統(tǒng)定制和內(nèi)部程序設(shè)計(jì)
傳統(tǒng)的MCU,DSP或ARM等硬處理器或控制器,它們的功能和片內(nèi)外設(shè)都是固化好的,用戶只能使用,而不能做任何改動(dòng)。而NIOSⅡ處理器是FPGA芯片生成廠商Altera公司無(wú)償提供的軟IP核,可以通過QuanusⅡ軟件對(duì)它進(jìn)行設(shè)置,隨時(shí)可以添加在片的ROM或RAM,并去掉不必要的外設(shè),使得整個(gè)系統(tǒng)的搭建靈活,方便,簡(jiǎn)潔。并且,在硬件系統(tǒng)的設(shè)計(jì)上,一片F(xiàn)PGA芯片內(nèi)就可以完成整個(gè)的數(shù)字控制系統(tǒng),使得硬件系統(tǒng)的設(shè)計(jì)非常的簡(jiǎn)單可靠,性能也非常的穩(wěn)定。
在本系統(tǒng)的設(shè)計(jì)中,NIOSⅡ處理器和傳統(tǒng)的MCU,DSP或ARM等硬處理器或控制器一樣,也可以用C語(yǔ)言編程實(shí)現(xiàn)需要的控制功能,也可以嵌入各種嵌入式操作系統(tǒng),并進(jìn)行調(diào)試等。編程的開發(fā)環(huán)境是專用的NIOS2-IDE集成開發(fā)環(huán)境。
評(píng)論