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