用FIFO實(shí)現(xiàn)A/D與ARM處理器的接口
1 器件簡(jiǎn)介
1.1 模/數(shù)轉(zhuǎn)換器AD7671
AD767l是采樣速率達(dá)1Msps的16位逐次逼近型高速高精度模/數(shù)轉(zhuǎn)換器,采用5V單電源供電,并能提供單極性和雙極性兩種輸入方式,可適用不同的輸入范圍;它還提供校準(zhǔn)與誤差校正電路、內(nèi)部時(shí)鐘、8位或16位并行口和1個(gè)串行口。AD7671能夠達(dá)到16位分辨率,而且無失碼,最大積分非線性誤差(INL)僅為±2.5 LSB,能夠滿足各種高精度應(yīng)用的要求。
通常情況下,AD7671有兩種數(shù)據(jù)讀取方式:一種是在數(shù)據(jù)轉(zhuǎn)換完成后,讀取轉(zhuǎn)換的數(shù)據(jù);另一種是在數(shù)據(jù)轉(zhuǎn)換的過程中,讀取上一次轉(zhuǎn)換完成的數(shù)據(jù)。圖l中的時(shí)序圖描述了后一種情況,即主控制器發(fā)出CNVST信號(hào)后,檢測(cè)BUSY信號(hào)。當(dāng)BUSY信號(hào)置為高電平時(shí),讀取由上一個(gè)轉(zhuǎn)換過程所轉(zhuǎn)換的數(shù)據(jù)。
1.2 FIFO芯片CY7C4255V
FIFO(First In First Out)簡(jiǎn)單說就是指先進(jìn)先出。作為一種新型大規(guī)模集成電路,F(xiàn)IFO芯片以其靈活、方便、高效的特性,逐漸在高速數(shù)據(jù)采集、高速數(shù)據(jù)處理、高速數(shù)據(jù)傳輸以及多機(jī)處理系統(tǒng)中得到越來越廣泛的應(yīng)用。CY7C455V是Cypress公司的3.3V高速,低功耗的FIFO,芯片容量為8K×18位,最高工作速率為100MHz(最短讀/寫時(shí)間為10ns),輸入/輸出端口由單獨(dú)的時(shí)鐘和使能信號(hào)控制,具有“空”、“滿”、“半滿”和可編程的“幾乎空”、“幾乎滿”標(biāo)志。
CY7C4255的18位輸入/輸出端口由單獨(dú)的時(shí)鐘和使能信號(hào)控制。輸入端口由一連續(xù)寫時(shí)鐘(WCLK)和寫使能信號(hào)(WEN)控制,當(dāng)寫使能WEN有效時(shí),數(shù)據(jù)在每個(gè)時(shí)鐘周期WCLK信號(hào)的上升沿被連續(xù)寫入FIFO存儲(chǔ)器中。同樣,輸出端口由一連續(xù)讀時(shí)鐘(RCLK)和讀使能信號(hào)(REN)控制,而且有一個(gè)輸出使能引腳(OE)。如果是單時(shí)鐘操作,則讀/寫時(shí)鐘可連接在一起;在異步讀/寫應(yīng)用中,兩個(gè)時(shí)鐘可以是獨(dú)立的,時(shí)鐘頻率最高可達(dá)100 MHz。利用芯片提供的級(jí)聯(lián)輸入(WXI、RXI)、級(jí)聯(lián)輸出(WXO、RXO)和首先加載(FL)引腳可進(jìn)行深度擴(kuò)展。
1.3 ARM處理器LPC2210
LPC2210是基于一個(gè)支持實(shí)時(shí)仿真和嵌入式跟蹤的16/32位144腳ARM7TDMI-S核的微控制器。它內(nèi)部包含ARM7TDMI-S核與片內(nèi)存儲(chǔ)器控制器接口的ARM7局部總線、與中斷控制器接口的AMBA高性能總線(AHB)和連接片內(nèi)外設(shè)功能的VLSI外設(shè)總線(VPBARM AMBA總線的兼容超集)。LPC2210具有16KB片內(nèi)靜態(tài)RAM;片內(nèi)外設(shè)與器件引腳的連接由引腳連接模塊控制,該模塊由軟件進(jìn)行控制以符合外設(shè)功能與引腳在特定應(yīng)用中的需求;通過外部存儲(chǔ)器接口可將存儲(chǔ)器配置成4組,每組的容量高達(dá)16MB,數(shù)據(jù)寬度為8/16/32位;具有2個(gè)32位定時(shí)器(帶4路捕獲和4路比較通道)、PWM單元(6路輸出)、實(shí)時(shí)時(shí)鐘和看門狗;多個(gè)串行接口包括2個(gè)16C550工業(yè)標(biāo)準(zhǔn)UART、高速I2C接口(400kb/s)和2個(gè)SPI接口;多達(dá)76個(gè)通用I/O口(可承受5V電壓),12個(gè)獨(dú)立外部中斷引腳EIN和CAP功能。
2 接口電路
利用FIFO芯片CY7C4255V實(shí)現(xiàn)AD7671與LPC2210的接口電路,如圖2所示。圖中,AD7671的輸入范圍已經(jīng)配置成士5V,其數(shù)據(jù)端口采用高速并行接口;接口的數(shù)據(jù)讀取模式設(shè)置為圖l所示的模式,其中+5V和一5V分別是模擬電壓。由于CY7C11255V與LPC2210的數(shù)據(jù)接口的電壓為3.3V,所以將3.3V數(shù)字電壓輸入到OVDD引腳,這樣AD7671的數(shù)據(jù)接口電壓就可以與FIFO芯片的數(shù)據(jù)接口相兼容。ADR421為AD7671提供了+2.5V的基準(zhǔn)電壓;AD7671的模擬輸入端,采用了由低噪聲系數(shù)的激勵(lì)放大器ADS02l構(gòu)成的驅(qū)動(dòng)電路來驅(qū)動(dòng)A137671。
A/D轉(zhuǎn)換結(jié)果輸出直接與FIFO數(shù)據(jù)輸入端D0~D15相連}轉(zhuǎn)換控制由ARM處理器的一個(gè)PWM輸出端產(chǎn)生所需的采樣頻率的采樣控制信號(hào),該信號(hào)同時(shí)作為 FIFO的輸入使能端的控制。AD767l的BUSY輸出端作為FIFO的輸入時(shí)鐘(WCLK)控制信號(hào),當(dāng)轉(zhuǎn)換結(jié)束時(shí) BUSY(WCLK)由低變高,此時(shí)FIFO寫使能WEN有效,轉(zhuǎn)換數(shù)據(jù)就在WCLK(BUSY)信號(hào)的上升沿被寫入FIFO 存儲(chǔ)器中。LPC2210 ARM處理器總線數(shù)據(jù)寬度配置為 16位,由EMC總線的片選信號(hào)nCS2、輸出使能信號(hào) nOE、時(shí)鐘輸出XCLK來控制FIFO的數(shù)據(jù)讀取。FIFO 的半滿(HF)、全滿(FF)標(biāo)志與ARM的2個(gè)中斷引腳相連,可通過編程在實(shí)際應(yīng)用中選擇使用;EF接ARM的 PO.23引腳作為FIFO的空查詢引腳。
結(jié)語(yǔ)
采用FIFO器件作為高速A/D與ARM處理器間的數(shù)據(jù)緩沖,具有電路結(jié)構(gòu)簡(jiǎn)單、性能可靠等優(yōu)點(diǎn);同時(shí)提高了處理器的工作效率,使控制更加方便。