多通道A/D轉換控制模塊的設計與實(shí)現
控制信號中的模擬量傳輸正逐步改為數字量傳輸,各種非數字化設備也必將逐步為數字化智能產(chǎn)品所取代。但是,在實(shí)際生產(chǎn)現場(chǎng)依然有大量的數據是模擬量,例如壓力、液位、溫度等,必須通過(guò)A/D轉換才能將這些數據送到控制系統進(jìn)行分析處理。為滿(mǎn)足實(shí)際需要,本文提出利用MC143150 Neuron芯片和12位串行模數轉換器ADS7844開(kāi)發(fā)與設計多通道A/D轉換控制模塊,實(shí)現了多個(gè)模擬量信號的并行采集、分析與處理功能,具有精度高和性能可靠等特點(diǎn)。
本文引用地址:http://dyxdggzs.com/article/201706/347184.htm1 硬件設計
多通道A/D轉換控制模塊的硬件總體結構如圖1所示,主要包括模擬信號電路、8通道12位串行A/D轉換器ADS7844和MC143150 Neuron芯片。設計中利用8通道12位串行A/D轉換器ADS7844實(shí)現模擬量的數字化轉換,同時(shí)利用MC143150 Neuron芯片對ADS7844的8通道模擬輸入量的數字化轉換結果進(jìn)行循環(huán)采集,實(shí)現多個(gè)模擬量數據的并行采集、分析與處理,較大程度地滿(mǎn)足了應用現場(chǎng)的實(shí)際要求。
1.1 ADS7844
ADS7844是Burr-Brown公司生產(chǎn)的寬電壓、低功耗、高性能的12位串行模數轉換器。它有8個(gè)模擬輸入端,可編程設置為8通道單端輸入或4通道差分輸入的A/D轉換器,還可編程使芯片處于低功耗電源工作模式。ADS7844的轉換率可達200 kHz,而線(xiàn)性誤差和差分誤差最大僅為±1LSB。ADS7844電源電壓為2.7~5 V之間均能正常工作,最大工作電流為1 mA,進(jìn)入低功耗狀態(tài)后的耗電僅3μA。
(1)ADS7844的引腳功能。
CH0~CH7:模擬輸入端,當器件被設置為單端輸入時(shí),這些引腳可分別與信號地COM構成8通道單端輸入A/D轉換器;當器件被設置為差分輸入時(shí),利用CH0~CH1、CH2~CH3、CH4~CH5和CH6~CH7可構成4通道差分輸入A/D轉換器;
COM:信號地;
VREF:參考電壓輸入端,最大值為電源電壓;
?。浩x端,低電平有效,該腳為高電平時(shí),其他數字接口線(xiàn)呈三態(tài);
DCLK:外部時(shí)鐘輸入端,在時(shí)鐘作用下,CPU將控制字寫(xiě)入ADS7844,并將轉換結果從中讀出;
DIN:串行數據輸入端,在片選有效時(shí),控制字在DCLK上升沿被逐位鎖入ADS7844;
DOUT:串行數據輸出端,在片選有效時(shí),轉換結果在DCLK的下降沿開(kāi)始被逐位從ADS7844移出;
BUSY:“忙”信號輸出端,在接收到控制字的第一位數據后變低,只有在轉換結束且片選有效時(shí),該腳才輸出一個(gè)高脈沖;
?。弘娫搓P(guān)閉端,低電平有效。當SHDN為低電平時(shí),ADS7844為低功耗狀態(tài);
VCC,GND:分別為電源端和數字地。
(2)ADS7844的控制字。
通過(guò)ADS7844的控制字可以設置其信號聯(lián)結方式、選擇數據轉換通道和電源工作模式。ADS7844控制字如表1所示。
其中,S是起始位,控制字的起始位總為“1”;A2~A0是通道選擇位,在單端輸入時(shí)分別對應8個(gè)通道,對應關(guān)系見(jiàn)表2,而對于差分輸入,CH0~CH1、CH2~CH3、CH4~CH5、CH6~CH7分別對應差分信號的輸入端,其對應關(guān)系如表3所示。
SGL/DIF是模式控制位,該位為“1”時(shí)是單端輸入模式,為“0”時(shí)是差分輸入模式;PD1和PD0是電源模式控制位,其含義如表4所示。
(3)ADS7844的轉換時(shí)序圖。
ADS7844有3種轉換時(shí)序,分別是15-時(shí)鐘轉換時(shí)序、16-時(shí)鐘轉換時(shí)序和24-時(shí)鐘轉換時(shí)序,通常采用轉換周期為24個(gè)時(shí)鐘周期的工作時(shí)序,其中8個(gè)用于輸入控制字,16個(gè)用于讀取轉換結果,如圖2所示??刂谱值乃形辉跁r(shí)鐘上升沿被鎖入芯片,轉換結果在時(shí)鐘的下降沿被逐位移出。所有移入和移出的數據都是高位在前、低位在后。需要說(shuō)明的是,ADS7844是12位A/D轉換器,其轉換結果只有12位,故在移出12位結果后,還需送入4個(gè)時(shí)鐘來(lái)完成整個(gè)轉換過(guò)程,這4個(gè)多余時(shí)鐘移出的數據為“0”,使用時(shí)不應作為轉換結果處理。
1.2 MC143150 Neuron芯片
MC143150 Neuron芯片是Motorola公司成熟的VLSI設備,集成了硬件和固件,提供了完整的系統資源,3個(gè)管線(xiàn)處理器,其中一個(gè)用于執行用戶(hù)編寫(xiě)的應用程序、另外兩個(gè)完成網(wǎng)絡(luò )中Neuron芯片間的信息交互任務(wù)。Neuron芯片通過(guò)11只引腳與應用指定的外部硬件相連,可以配置直接I/O對象、并行雙向I/O對象、串行I/O對象等多種工作方式,從而可以借助最少的外接電路實(shí)現靈活的輸入輸出功能。
為了便于現場(chǎng)應用,將MC143150 Neuron芯片、收發(fā)器Transceiver、定時(shí)器以及存儲器集成在一起,如圖3 所示。其中Clock給MC143150 Neuron芯片提供工作基準時(shí)鐘信號,RAM/ROM等存儲器用于存放MC143150 Neuron芯片的固件與用戶(hù)應用程序,Transceiver用于模塊間網(wǎng)絡(luò )互聯(lián),I/O調處與A/D轉換器ADS7844的對應數據端口、外圍電源、MC143150 Neuron芯片的Reset和Service控制按鍵相連接,維護MC143150 Neuron芯片的正常工作以及實(shí)現端口數據的采集、分析和處理等功能。
2 軟件設計
Neuron C是專(zhuān)門(mén)為Neuron芯片設計的編程語(yǔ)言,它以ANSI C為基礎,包括對ANSI C的擴展,可直接支持Neuron芯片的軟件固化。Neuron C定義了多種I/O對象類(lèi)型,如直接、計數器/計時(shí)器、串行和并行。下面介紹MC143150 Neuron芯片對ADS7844的8個(gè)通道工作在差分輸入方式下進(jìn)行循環(huán)采樣的程序設計過(guò)程。
選用MC143150 Neuron芯片的Neurowire輸入/輸出作為I/O對象,使MC143150 Neuron芯片循環(huán)采集ADS7844輸出端口DOUT信號,實(shí)現與ADS7844同步全雙工串行通信。
2.1 Neurowire輸入/輸出對象語(yǔ)法結構定義
IO_8:Neurowire輸入/輸出對象使用管腳IO_8~IO_10,IO_8指定時(shí)鐘管腳,IO_9是串行數據輸出管腳,IO_10是串行數據輸入管腳。
Master:指定Neuron芯片在管腳IO_8上提供時(shí)鐘,設置為輸出管腳。
Slave:指定Neuron芯片檢測在管腳IO_8上的時(shí)鐘,設置為輸入管腳。
Select(pin-nbr):為Neurowire master指定片選管腳,為IO_0~IO_7管腳之一。
Timeout(pin-nbr):為Neurowire Slave指定一個(gè)可選擇的超時(shí)信號管腳,其范圍是IO_0~IO_7。當使用超時(shí)信號管腳時(shí),當neuron芯片等待時(shí)鐘的上升沿或下降沿時(shí),將檢查該管腳的邏輯電平。如果檢測到邏輯電平為“1”,則傳輸停止。
Kbaud(const—expr):為Neurowire master指定比特率,const—expr可以為1 kb·s-1、10 kb·s-1或20 kb·s-1。對于10 MHz的Neuron芯片輸入時(shí)鐘,缺省值為20 kb·s-1。
Clockedge(+|-):指數據觸發(fā)時(shí)鐘信號極性,clockedge(+)為上升沿,clockedge(-)為下降沿。
io-object-name:由用戶(hù)為該I/O對象指定的名字。
2.2 采樣的程序清單
3 結束語(yǔ)
目前,該多通道A/D轉換控制模塊通過(guò)長(cháng)時(shí)間運行測試,其性能可靠,故障率低,節約能耗,實(shí)現了多個(gè)模擬量轉換、采集與處理功能,給現場(chǎng)自動(dòng)化控制系統的集成帶來(lái)較大的靈活性。
評論