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