摘 要:總線與外圍設備的接口一直是現代工業控制中最常用而又很重要的一項內容;FPGA由于其諸多優點也受到電路設計者的青睞,得到越來越多的應用。該調制器集成了這兩方面的應用,將PC104總線上的數據通過FPGA進行數字調制,經放大濾波后產生連續、沒有相位突變的2FSK信號,并輸出到外圍設備,起到數據傳輸和控制的作用。
關鍵詞:PC104總線;FPGA;2FSK;調制器
中圖分類號:TN911文獻標識碼:A
文章編號:1004-373X(2010)01-087-03
Design and Realization of 2FSK Modulator Based on PC104 Bus
GUAN Jinhui 1,2,SHI Chunhe1,HE Yuanhui3
(1.Ordnance Engineering College,Shijiazhuang,050003,China;2.72465 Military Unit,Ji′nan,250003,China;3.71282 Military Unit,Luoyang,471022,China)
Abstract:The interface between bus and its peripheral equipments is an universal and important content in modern industrial control.FPGA chips are applying more and more by the circuits designers.The modulator applies both of them,it obtains the data from PC104 bus,and modulates them in digital formats by a FPGA chip,continual 2FSK signal without phase saltation is gained after magnifying and filter circuits.This signal can be used to transmit data or control signals to the peripheral equipment.
Keywords:PC104 bus;FPGA;2FSK;modulator
嵌入式計算機系統在現代工業控制中發揮著越來越重要的作用,它具有便攜、可靠、低功耗、通用、易擴展等諸多優點。使用嵌入式系統進行工業控制要涉及到計算機數據的傳輸、采集、調制解調等一系列問題[1]。
本調制器是一種基于PC104總線的嵌入式系統的外圍設備,嵌入式計算機系統通過PC104總線將數據發送到端口,調制器接收數據并進行調制后,將信號輸出到受控設備,從而對相應設備起到控制的功能。在本調制器的硬件電路中使用FPGA,提高了系統的通用性。
1 總體結構
該調制器實現的功能主要包括:識別并接收總線發送的數據;根據不同地址控制信號將數據按路區分(共四路);每路分別將數據按照連續調制的方式進行2FSK調制;對調制后的信號進行放大整形并發送到端口。
因此,該調制器的電路部分分別包括數據接收部分、FPGA及外圍電路(實現數據分路及數字調制功能)、D/A轉換電路、放大濾波電路等。系統總體結構如圖1所示。
2 PC104總線及數據接收電路
PC104總線是專門為嵌入式系統開發的系統總線,是一種自堆棧式、模塊化的總線,它基于ISA總線發展而來,有16位和8位兩種接口方式(分別為64+40引腳和64引腳端口結構),該總線具有結構緊湊、便攜、可靠、功耗低、易擴展等優點[2]。對于工程開發而言,常用的引腳主要有以下幾個:
圖1 系統總體結構
SD0~SD7,SD8~SD15:數據總線,當采用8位接口方式時,只有SD0~SD7工作;
SA0~SA19,LA17~LA23:地址信號,對端口進行操作時使用SA0~SA9;
AEN:DMA選通信號,為高電平時表示處于DMA模式;
IOW,IOR:端口寫、讀信號,低電平有效;
SYSCLK:系統提供的基準時鐘信號,是標準的方波信號,約為8 MHz;
VCC,GND,+12 V,-12 V:系統提供的電源接口[3]。
數據接收電路就是要在正確的時序上將所需的數據進行提取,還要實現將電路工作狀態傳送回總線,以便總線決定是否發送下組數據的功能。由于PC104總線最高支持約8 MHz的時鐘頻率,而受控設備所需的2FSK信號頻率為幾千赫茲,因此這里只用8位數據總線就完全能夠滿足要求。
總線接收電路如圖2所示。其中SD0~SD9,SA0~SA9是從總線發來的數據、地址信號,SEL0~SEL3為分路選擇信號,ANSWER0~ANSWER3為FPGA的狀態返回信號,由于總線速度要比2FSK輸出速度高得多,因此,總線要對FPGA數據緩存器是否為空進行查詢,當FPGA沒有完成數據轉換時,總線要等下個周期,直到狀態返回信號顯示FPGA內部為空時,總線才可以發送下組數據到FPGA。74LS273負責將每路的數據分別進行鎖存,4路數據共使用4個。OUT1D0~D7為第一路8位數據輸出,LOCK0為其控制信號,表示數據的更新。
圖2 數據接收電路圖
3 FPGA及其外圍電路
FPGA具有集成度高、設計靈活、易于修改、節省空間、通用性高等優點。本調制器中FPGA采用的是Altera公司的EPF10K20TC144-4器件,該器件具有20 000個典型門,1 153個邏輯單元,144引腳,包括2個全局輸入時鐘,4個全局輸入,86個通用可編程I/O引腳。該芯片采用TQFP封裝,芯片面積較小,功耗低,其輸入、輸出與TTL與PC104總線電平完全兼容。FPGA電路主要實現的功能為:接收數據提取電路發送的分路數據;以總線上的SYSCLK時鐘為基準,通過分頻產生受控設備能識別的頻率;為每路輸出進行2FSK的數字調制,保證信號的連續性;完成本身的FPGA電路配置[4]。
FPGA配置電路如圖3所示。
圖3 FPGA配置電路
FPGA的配置使用PS和JTAG兩種方式,既能實現JTAG方式下電路在線調試,又能保證調試完成后能夠正確使用相應的配置器件。其中JP5*2插座為JTAG配置端口,TDI、TDO、TMS、TCK為JTAG配置引腳,該配置方式采用BlasterMV線,通過配置計算機的并口與電路板配置端口進行連接,用于將編寫好的配置數據實時傳送到FPGA,該方式主要用于電路調試;EPC1PC8為FPGA配置器件,采用PS(被動串行)配置方式,由于FPGA內部存儲器屬于易失性RAM存儲,因此每次加電后都要將程序重新寫入FPGA,配置器件本身就是存儲器,其主要作用就是在每次加電后將程序寫入FPGA,保證調試完畢的電路能夠正常單獨進行工作[5,6]。
來自前級電路的數據及控制信號、發到D/A轉換電路的數據都連接到FPGA芯片的通用I/O引腳,通過編程實現所需功能。對FPGA的編程使用Altera公司的Quartus Ⅱ軟件,該軟件采用圖形化與VHDL語言混合編程,易于調試修改[7]。編程實現的主要功能為:對輸入數據進行鎖存移位,確保每位數據都能得到正確處理;產生兩組分頻時鐘參與2FSK調制,并使分頻后的時鐘按照時序進入數字調制器;數字調制器負責將不同頻率始終按照順序依次產生連續量化的8位正弦波數字量輸出到端口。
本設計中由于采用兩種頻率分時產生,按時序進入調制器,而正弦波數字調制器單獨工作的方法,保證了輸出正弦波具有連續的相位,不會產生相位突變。
4 D/A轉換電路
D/A轉換共包括四路,其主要功能是將FPGA輸出的已調制好的2FSK數字信號轉換為正弦波信號。由于FPGA在進行數字調制時產生的是連續量化的正弦波形,兩個頻率之間不存在相位的突變,不會存在大量的高頻雜波,因此,后期的信號處理電路使用放大電路與簡單的π型濾波器對信號進行處理即可得到比較理想的2FSK信號[8]。
D/A轉換電路如圖4所示。
圖4 D/A轉換電路
此電路采用AD7524作為D/A轉換器,AD7524屬于T型電阻網絡型DAC,電流輸出,8位數字輸入,輸出建立時間0.2 μs/0.15 μs,其數字輸入端可采用5 V/15 V兩種輸入,本電路采用兼容TTL電平的5 V輸入[9]。電路中將其輸入控制端CS、WR同時接地,當有來自FPGA的數據AD1O1~7輸入時無需鎖存,直接進行轉換,因此要求FPGA的輸出要具有鎖存功能,此接法可減少輸出控制線,減少時序干擾。R1AD1和R1AD2為D/A輸出波形調整電阻,主要用于調整波形位置,不致產生失真[10]。D/A輸出采用雙極性接法,通過兩路LM324通用放大器進行電壓放大,輸出2FSK信號。圖5(a)為經過D/A轉換后輸出的波形在示波器上的截圖,由圖中可以看到,數字調制并經D/A轉換后,波形是一種階梯狀正弦波,且波形連續,頻率變換交界處無相位突變。該信號經過雙極性放大器放大并通過π型濾波器后變成如圖5(b)所示的連續正弦波。
圖5 2FSK信號濾波前后波形比較
5 結 語
采用FPGA進行2FSK調制不但能產生連續相位,還能通過軟件直接修改其調制方式、產生頻率等一系列參數,具有很好的通用性。
本電路中數據提取電路屬于原理性電路,實際設計中可將該部分電路置于FPGA內部進行設計,而系統參考時鐘SYSCLK可接在FPGA的全局時鐘輸入端,減少延遲差異。
參考文獻
[1]何宗鍵.Windows CE嵌入式系統[M].北京:北京航空航天大學出版社,2006.
[2]陳再秀.PC-104嵌入式系統綜述[J].自貢師范高等專科學校學報,2002,17(3):71-73.
[3]陳芳.基于PC-104的ARINC429通訊總線的設計與實現[D].南京:南京航空航天大學,2005.
[4]劉愛榮,王振成.EDA技術與CPLD/FPGA開發應用簡明教程[M].北京:清華大學出版社,2007.
[5]王誠,吾繼華,范麗珍,等.Altera FPGA/CPLD設計(基礎篇)[M].北京:人民郵電出版社,2005.
[6]李洪偉,袁斯華.基于Quartus Ⅱ的FPGA/CPLD設計[M].北京:電子工業出版社,2006.
[7]鄭燕,赫建國,黨建華.基于VHDL語言與Quartus Ⅱ軟件的可編程邏輯器件應用與開發[M].北京:國防工業出版社,2007.
[8]康華光.電子技術基礎(模擬部分)[M].4版.北京:高等教育出版社,1999.
[9]何希才.常用集成電路簡明速查手冊[M].北京:國防工業出版社,2006.
[10]Analog Devices.8-Bit Buffered Multiplying DAC AD7524技術手冊[EB/OL].http://www.ic-cn.com.cn,2008.