文獻標識碼: B
文章編號: 0258-7998(2014)09-0075-03
隨著航空器以高度自動化的趨勢發(fā)展,,傳感器數(shù)據(jù)需要被快速采集和高精度轉(zhuǎn)換,,以便飛行控制系統(tǒng)使用和處理。傳統(tǒng)的集成于DSP的A/D轉(zhuǎn)換芯片往往不能滿足速度和精度的要求,,因此需要使用獨立的A/D轉(zhuǎn)換芯片實現(xiàn)傳感器數(shù)據(jù)的采集和轉(zhuǎn)換,。同時,隨著嵌入式計算機種類的多樣化,,部分嵌入式計算機不再集成A/D芯片,,由于各種因素在選擇不含A/D轉(zhuǎn)換功能的嵌入式計算機時,,也必須考慮如何對獨立A/D芯片進行控制以實現(xiàn)對模擬信號的快速采集與轉(zhuǎn)換。在項目的研發(fā)中,,通過使用SBS公司的CDT2000模塊,,實現(xiàn)了對AD7891芯片的控制,取得了快速,、精確的轉(zhuǎn)換效果,。CDT2000含有豐富的I/O口,同時電位值與普通A/D芯片的引腳電位吻合,,因此可以方便地與A/D芯片引腳連接,;而且其I/O的電位變化迅速,能夠滿足高速轉(zhuǎn)換的要求,。文中給出了系統(tǒng)主要的硬件電路和CDT2000 I/O對AD7891芯片的控制方法,,同時對A/D轉(zhuǎn)換結(jié)果做了數(shù)據(jù)分析。
1 系統(tǒng)硬件構(gòu)成
1.1 系統(tǒng)概況
本轉(zhuǎn)換系統(tǒng)要求轉(zhuǎn)換頻率不低于100 Hz,,對于0~10 V的輸入電壓,,轉(zhuǎn)換誤差不大于10 mV。為達到以上要求,, 系統(tǒng)選用的硬件包括SBS公司的嵌入式PC/104計算機,、CDT2000模塊,ADI公司的AD7891型號芯片和Fairchild公司的DM74LS73A型號JK觸發(fā)器,。
1.2 PC/104與CDT2000 I/O口
PC/104是嵌入式PC的機械電氣標準,,它秉承了IBM-PC開放式總線結(jié)構(gòu)的優(yōu)點,與IBM-PC 100%兼容,。
CDT2000是16位計數(shù)器/定時器與數(shù)字量I/O模塊,,通過總線與PC/104模塊連接,可將由PC/104模塊構(gòu)成的系統(tǒng)變成一個高性能的控制系統(tǒng),。CDT2000有48通道TTL/CMOS 兼容的數(shù)字量I/O,,這些I/O由模塊上的71055可編程外圍接口(PPI)芯片提供,由I/O連接器引出,。端口能直接與外部設(shè)備或信號連接,,端口高電位為5 V,低電位為0 V,。
CDT2000的48通道數(shù)字量I/O在硬件上以兩排I/O口排列,,每排包括24路數(shù)字量I/O;這24路I/O又分為口0(8條線),、口1(8條線),、口2(8條線)3組,每組I/O都分配有獨立的基地址,,因此可以單獨決定每組I/O的輸入/輸出模式,。
1.3 AD7891芯片
AD7891是一款8通道,、12位數(shù)據(jù)采集系統(tǒng),有并行和串行兩種接口模式,。本系統(tǒng)采用的輸入量程為-10 V~
+10 V,,理論轉(zhuǎn)換精度可達4.88 mV。
在單通道輸入,,采用硬件啟動轉(zhuǎn)換時,,AD7891的轉(zhuǎn)換速率可達454.5 kS/s。芯片的每個輸入通道都擁有過電壓保護機制,,允許的過壓值為±17 V,。
AD7891可以通過MODE引腳來選擇并行或串行接口模式。無論是串行還是并行工作模式,,芯片均能提供標準控制輸入及快速數(shù)據(jù)訪問時間特性,,確保與現(xiàn)代微處理器、微控制器和數(shù)字信號處理器輕松對接[2],。由于CDT2000模塊提供豐富的I/O口,,本轉(zhuǎn)換系統(tǒng)采用并行接口方式。芯片端口的控制以及數(shù)據(jù)的讀寫全部通過CDT2000的I/O口實現(xiàn),,既滿足轉(zhuǎn)換的快速性要求,,在硬件上也較容易實現(xiàn)。
1.4 DM74LS73A型號JK觸發(fā)器
DM74LS73A是負脈沖邊緣觸發(fā)型的主-從JK觸發(fā)器,,當觸發(fā)器CLK端電位由低升高時,可觸發(fā)輸出端Q,、的電位變化,。
A/D轉(zhuǎn)換結(jié)束時,AD7891的EOC端輸出脈寬為80 ns的負脈沖,。但CDT2000沒有捕捉負脈沖的功能,,因此在AD7891與CDT2000之間增加一個JK觸發(fā)器,由觸發(fā)器CLK端捕捉EOC引腳輸出的負脈沖,。EOC引腳輸出的負脈沖使JK觸發(fā)器Q端的電位變化時,,表明A/D轉(zhuǎn)換結(jié)束。
1.5 系統(tǒng)硬件連接
根據(jù)以上系統(tǒng)各硬件的性能及特性,,設(shè)計系統(tǒng)硬件連接電路如圖1所示,。
圖1中,由CDT2000 I/O指向AD7891和JK觸發(fā)器的箭頭線表示CDT2000 I/O口以輸出模式與AD7891和JK觸發(fā)器的引腳連接,,I/O通過輸出電位的變化實現(xiàn)AD7891和JK觸發(fā)器中與之連接的各引腳的功能,;由AD7891和JK觸發(fā)器指向CDT2000 I/O的箭頭線表示CDT2000 I/O口以輸入模式與AD7891和JK觸發(fā)器的引腳連接,I/O口讀取AD7891和JK觸發(fā)器中與之連接的各引腳的電位,,通過總線傳遞給PC/104,;CDT2000 I/O與AD7891間的雙向箭頭線表示AD7891上的引腳為復(fù)用端口,,I/O口既要以輸出模式控制該引腳的電位,又要在A/D轉(zhuǎn)換結(jié)束時,,以輸入模式讀取該引腳的電位,。
在A/D轉(zhuǎn)換過程中,CDT2000 I/O始終向AD7891的STANDBY和MODE引腳輸出高電位,,以使AD7891處于正常工作狀態(tài)和并行工作模式,;向JK觸發(fā)器的J引腳和K引腳分別給予低電位和高電位,以使A/D轉(zhuǎn)換開始前JK觸發(fā)器的Q輸出端為低電位,。A/D轉(zhuǎn)換結(jié)束時由AD7891的EOC引腳輸出的負脈沖將使Q輸出端的低電位轉(zhuǎn)換為高電位,,經(jīng)I/O口讀取后告知PC/104 A/D轉(zhuǎn)換結(jié)束。同時在每次A/D轉(zhuǎn)換開始前,,向JK觸發(fā)器的CLR引腳給予一不小于30 ns的負脈沖,,使Q輸出端恢復(fù)低電位。
2 系統(tǒng)軟件實現(xiàn)
2.1 AD7891時序分析
為實現(xiàn)系統(tǒng)的高速轉(zhuǎn)換,,首先對AD7891的轉(zhuǎn)換時序進行分析,。并行接口模式下AD7891的轉(zhuǎn)換時序見圖2。
圖2中,,t1為從CS到RD/WR的觸發(fā)時間,,為0 ns;t2為寫脈沖寬度,,不小于35 ns,;t3為寫有效數(shù)據(jù)時間,不小于25 ns,;t4為有效數(shù)據(jù)保持時間,,不小于5 ns;t5為CS到RD/WR的保持時間,,為0 ns,;t6為CONVST脈沖寬度時間,不小于35 ns,;t7為EOC脈沖寬度時間,,不小于55 ns;t8為讀脈沖寬度,,不小于35 ns,;t9為RD下降沿之后讀數(shù)據(jù)時間,不小于25 ns,;tCONV為A/D轉(zhuǎn)換時間,,不大于1.6 μs;t10不小于30 ns,。
2.2 I/O口對AD7891工作時序的控制
AD7891的工作時序由CDT2000的I/O口控制,,因此在操作I/O口的電位變化時,,必須根據(jù)AD7891的轉(zhuǎn)換時序,合理地分配以上時間,,以實現(xiàn)快速高效的轉(zhuǎn)換,。
在硬件層,PC/104核心處理器的晶振頻率為100 MHz,,單周期指令的執(zhí)行時間為10 ns,。PC/104通過總線操作改變CDT2000的I/O口的電位。一次總線操作的時間在1 μs以上,,即C語言操縱I/O口電位變化的代碼執(zhí)行時間在1 μs以上,,遠大于時序中要求的各負脈沖時間。因此在連續(xù)改變I/O口電位時,,無需考慮延時,。
AD7891的DB0~DB5為復(fù)用數(shù)據(jù)線,寫入數(shù)據(jù)時,,通過這6個引腳改變AD7891控制寄存器的數(shù)值,;讀取數(shù)據(jù)時,通過這6個引腳獲得A/D轉(zhuǎn)換結(jié)果的低6位數(shù)值,。因此在每次A/D轉(zhuǎn)換中,,與這6個引腳連接的I/O口都要進行一次輸入/輸出模式的轉(zhuǎn)換。而CDT2000 I/O的特性是在某一路I/O由輸入模式轉(zhuǎn)變?yōu)檩敵瞿J綍r,,同一排I/O中所有輸出口的電位都會清零,,因此必須保證與AD7891 DB0~DB5連接的6個I/O口的輸入/輸出模式改變時,不會影響其他輸出端口的電位,,否則將導致轉(zhuǎn)換失敗,。為實現(xiàn)以上條件,需將與AD7891 DB0~DB5連接的6個I/O口單獨安排在CDT2000 I/O的一排,,而與AD7891其他引腳連接的I/O口在另一排。
使用CDT2000 I/O對AD7891的控制操作中,,首先向JK觸發(fā)器的CLR引腳輸出一負脈沖,,使其Q輸出端恢復(fù)低電位;然后將與AD7891芯片DB0~DB5引腳連接的I/O置為輸出模式,,并向其輸出電位以選擇A/D輸入通道和轉(zhuǎn)換結(jié)果輸出格式,;然后向WR引腳輸出負脈沖,將DB0~DB5引腳的電位數(shù)據(jù)寫入控制寄存器,;隨后向CONVST引腳輸出負脈沖啟動A/D轉(zhuǎn)換,,待Q端電位升高后,將與DB0~DB5引腳連接的I/O改為輸入模式,;然后將RD引腳電位置底,,讀取DB0~DB11引腳的電位值,,獲得A/D轉(zhuǎn)換結(jié)果;最后將RD引腳電位置高,,完成A/D轉(zhuǎn)換,。以上為完成一次A/D轉(zhuǎn)換的操作流程,其執(zhí)行時間不超過25 μs,,轉(zhuǎn)換頻率可達4×104 Hz,,滿足系統(tǒng)對轉(zhuǎn)換頻率大于100 Hz的要求。
3 試驗結(jié)果
AD7891轉(zhuǎn)換數(shù)值的輸出格式既可以是普通二進制形式也可以是補碼形式,,由FORMAT引腳的電位控制,。普通二進制形式時,輸出范圍為0~4 095,;補碼形式時,,輸出范圍為-2 048~2 047。轉(zhuǎn)換數(shù)值理論上與輸入電壓呈線性關(guān)系,。由于項目要求采集的電壓范圍為0~10 V,,因此本轉(zhuǎn)換系統(tǒng)選擇的輸出格式為普通二進制形式。試驗中輸入電壓由穩(wěn)壓電源提供,,在輸入電壓固定時,,取轉(zhuǎn)換數(shù)值的平均值作為轉(zhuǎn)換結(jié)果,試驗數(shù)據(jù)如圖3所示,。
對試驗轉(zhuǎn)換值線性擬合獲得的參數(shù)中,,R平方值(相關(guān)系數(shù))為1,說明A/D轉(zhuǎn)換結(jié)果與輸入電壓呈現(xiàn)良好的線性關(guān)系,,這與理論相符合,。對試驗轉(zhuǎn)換值擬合得到的線性函數(shù)為:
式(1)、(2)中y為A/D轉(zhuǎn)換值,,x為輸入電壓,。對比式(1)和式(2)表明,試驗轉(zhuǎn)換結(jié)果相較理論值存在2 077.26-2 047.50=29.76的偏差,,即零漂值,。將零漂值修正后,試驗值與理論值的差值為:
式(3)說明轉(zhuǎn)換誤差隨著采集電壓增大而增大,,當輸入電壓范圍為0~10 V時,,試驗轉(zhuǎn)換值與理論值的最大差值為0.4,轉(zhuǎn)換誤差在最低有效位以內(nèi),。對于12位的A/D轉(zhuǎn)換器,,一個最低有效位的誤差表征4.88 mV轉(zhuǎn)換誤差,因此該系統(tǒng)滿足轉(zhuǎn)換誤差不大于10 mV的設(shè)計要求。
本文基于CDT2000 I/O對A/D芯片的控制,,設(shè)計了一種A/D高速采集轉(zhuǎn)換系統(tǒng),,通過使用CDT2000 I/O對AD7891和JK觸發(fā)器各引腳電位的控制及讀取,實現(xiàn)了對模擬數(shù)據(jù)的高速采集和轉(zhuǎn)換,。系統(tǒng)完成一次A/D轉(zhuǎn)換的時間小于25 μs,,滿足系統(tǒng)對轉(zhuǎn)換頻率大于100 Hz的要求;對轉(zhuǎn)換結(jié)果中存在的固定偏差修正后,,轉(zhuǎn)換誤差不超過4.88 mV,,滿足系統(tǒng)對采集精度的要求。本系統(tǒng)具有硬件結(jié)構(gòu)簡單,、編程容易,、易于實現(xiàn)的特點。
參考文獻
[1] 何學輝,,蘇濤.TMS320VC5402 DSP與串行AD73360 A/D轉(zhuǎn)換器的接口設(shè)計[J].電子技術(shù)應(yīng)用,,2003,29(11):67-70.
[2] 趙綱領(lǐng),,蔚永強,,張寧,等.基于DSP I/O口的多路高速數(shù)據(jù)采集系統(tǒng)設(shè)計[J].電測與儀表,,2007,,44(2):54-56.
[3] 劉春生,游志剛,,李小波.AD7891高速數(shù)據(jù)采集系統(tǒng)的原理與應(yīng)用[J].國外電子元器件,,2001(3):6-9.
[4] 陳勁操.利用增強型并行口設(shè)計12位數(shù)據(jù)采集系統(tǒng)[J].電子工程師,2001,,27(7):1-3
[5] 鄺堅.Tornado/VxWorks入門與提高[M].北京:科學出版社,,2004.
[6] 譚浩強.C程序設(shè)計(第3版)[M].北京:清華大學出版社,2005.