基于ARM的多路同步的A/D和D/A設(shè)計(jì)
本文將介紹一種基于ARM的高精度多路同步的數(shù)據(jù)采集與輸出控制系統(tǒng)的設(shè)計(jì)方法。本設(shè)計(jì)選用德州儀器公司生產(chǎn)的AD芯片ADS8556和DA芯片DAC8574,分別采用SPI接口和IIC接口與ARM9芯片S3C2440連接,闡明其硬件設(shè)計(jì)與軟件設(shè)計(jì)方法。系統(tǒng)可實(shí)現(xiàn)多路且同步、高速高精度的數(shù)據(jù)采集與輸出控制功能。
ARM處理器是一種32位精簡指令集RISC微處理器,片內(nèi)集成了豐富的硬件資源,廣泛的應(yīng)用于許多嵌入式系統(tǒng)中。S3C2440是一款基于ARM920T內(nèi)核的32位RISC嵌入式處理器,運(yùn)行主頻可達(dá)400MHz.本文闡述選用S3C2440處理器設(shè)計(jì)的一種同步、高速、高精度、多通道的數(shù)據(jù)采集與信號(hào)輸出系統(tǒng)的設(shè)計(jì)方法。
1多路同步A/D設(shè)計(jì)
1.1 ADS8556的功能
系統(tǒng)選用TI公司生產(chǎn)的16位6路同步逐次逼近型模數(shù)轉(zhuǎn)換芯片ADS8556.輸入模擬信號(hào)電壓范圍為-12V~+12V.常規(guī)應(yīng)用下功耗為251.7mW,最大功耗為298.5mW,信噪比可達(dá)91.5dB.ADS8556芯片內(nèi)部包含6個(gè)獨(dú)立的采樣保持模塊和對(duì)應(yīng)的6個(gè)獨(dú)立的模數(shù)轉(zhuǎn)換模塊,可實(shí)現(xiàn)對(duì)6路信號(hào)的同時(shí)同步的模數(shù)轉(zhuǎn)換。ADS8556工作模式分為硬件模式和軟件模式,本設(shè)計(jì)采用硬件模式。在硬件模式下ADS8556的功能設(shè)置(如每對(duì)通道的轉(zhuǎn)換使能、參考電壓選擇等)都是通過對(duì)相關(guān)引腳設(shè)置高低電平實(shí)現(xiàn)的。ADS8556支持并行和串行接口方式,本設(shè)計(jì)采用串行SPI接口與S3C2440連接。采用串行接口的優(yōu)點(diǎn)是節(jié)約S3C2440的引腳資源,S3C2440絕大多數(shù)引腳是功能復(fù)用的,若采用并行接口會(huì)占用其16個(gè)I/O引腳資源。
ADS8556具有3個(gè)串行數(shù)據(jù)輸出端口SDO_A、SDO_B、SDO_C,轉(zhuǎn)換結(jié)果通過端口使能可選擇這3個(gè)串行端口中的1個(gè)、2個(gè)或3個(gè)工作。當(dāng)3個(gè)端口都選用工作時(shí),每個(gè)串行端口上輸出對(duì)應(yīng)2路每路16位共32位的轉(zhuǎn)換結(jié)果,輸出時(shí)間需要32個(gè)時(shí)鐘周期,每路最大采樣率可達(dá)450kS/s.當(dāng)選擇2個(gè)串行端口時(shí),每個(gè)端口輸出3路共48位轉(zhuǎn)換結(jié)果,輸出時(shí)間需要48個(gè)時(shí)鐘周期,每路最大采樣率可達(dá)375kS/s.由于S3C2440只有2個(gè)SPI串行接口,所以至多選擇ADS8556的2個(gè)串行輸出端口與其連接。
1.2 ADS8556與S3C2440接口電路設(shè)計(jì)
本設(shè)計(jì)選用ADS8556的1個(gè)SPI串行輸出端口SDO_A與S3C2440的1個(gè)SPI接口SPI0連接,SDO_A端口輸出全部6路共96位轉(zhuǎn)換結(jié)果,輸出時(shí)間需要96個(gè)時(shí)鐘周期,每路最大采樣率可達(dá)250kS/s.SPI串口以主從方式工作,S3C2440作為主機(jī),ADS8556作為從機(jī),需要4根或3根線連接,3根用于單向傳輸,4根連接線分別是MOSI(主機(jī)輸出/從機(jī)輸入),MISO(主機(jī)輸入/從機(jī)輸出),SCLK(時(shí)鐘信號(hào)),CS(片選使能),連接方式如圖1所示。其中SPI0接口只用了3根連接線SPIMISO0、SPICLK0和NSS0,未使用SPIMOSI0,這是由于本設(shè)計(jì)選擇ADS8556工作于硬件模式,S3C2440沒有給ADS8556輸入數(shù)據(jù),其功能的設(shè)置(如每對(duì)通道的轉(zhuǎn)換使能、參考電壓選擇等)都是通過對(duì)相關(guān)使能引腳設(shè)置高低電平實(shí)現(xiàn)的。若在軟件模式下,這些功能的選擇是由S3C2440通過SPIMOSI對(duì)ADS8556內(nèi)部相應(yīng)寄存器進(jìn)行賦值實(shí)現(xiàn)的,此時(shí)其相關(guān)使能引腳均接地。
圖1 ADS8556與S3C2440接口連接示意圖
1.3 ADS8556的接口程序設(shè)計(jì)
S3C2440作為主機(jī),ADS8556作為從機(jī),程序中要對(duì)S3C2440的SPI串行端口進(jìn)行初始化設(shè)置,表1所示為相關(guān)引腳配置。
表1 ADS8556與S3C2440的接口引腳配置
圖2所示為ADS8556的采樣程序流程圖。S3C2440的SPI接口工作于主模式,數(shù)據(jù)傳輸采用中斷模式。本設(shè)計(jì)只使用了ADS8556的6路轉(zhuǎn)換通道中的4個(gè)通道。
圖2 ADS8556工作程序流程圖
2多路同步D/A設(shè)計(jì)
2.1 DAC8574的功能
DAC8574是帶有IIC接口的16位4路同步數(shù)模轉(zhuǎn)換芯片。DAC8574帶有一個(gè)IIC串行接口,包括SCL串行時(shí)鐘輸入和SDA串行數(shù)據(jù)輸入兩個(gè)引腳。輸出四路模擬電壓為VOUTA、VOUTB、VOUTC、VOUTD,電壓范圍為+2.7~+5.5V.由外部提供參考電壓VREFH、VREFL.A0、A1為IIC地址選擇,A2、A3為擴(kuò)展地址選擇,A1、A0、A3、A2共可確定16個(gè)地址,在IIC總線上最多可擴(kuò)展16個(gè)DAC8574.本設(shè)計(jì)在IIC總線上只使用一個(gè)DAC8574,則設(shè)置地址A1A0A3A2=0000.LDAC為同步輸出電壓更新。
DAC8574有三種工作模式:標(biāo)準(zhǔn)模式、快速模式、高速模式。標(biāo)準(zhǔn)模式時(shí)傳輸速率為100kbit/s,串行時(shí)鐘頻率fscl=100kHz,更新率為5.3kS/s;快速模式時(shí)傳輸速率為400kbit/s,fscl=400kHz,更新率為22.22kS/s;高速模式時(shí)傳輸速率為3.4Mbit/s,fscl=3.4MHz,更新率為188.88kS/s.標(biāo)準(zhǔn)模式和快速模式傳輸線協(xié)議基本相同,高速模式不同于標(biāo)準(zhǔn)和快速模式。DAC8574與S3C2440通過IIC總線連接時(shí),DAC8574作為從機(jī),S3C2440作為主機(jī)。本設(shè)計(jì)將DAC8574設(shè)置為高速模式。
2.2 DAC8574與S3C2440接口電路設(shè)計(jì)
DAC8574通過IIC接口SDA、SCL引腳與S3C2440連接,其工作模式選擇、通道使能、LDAC功能是由S3C2440通過SDA輸入設(shè)定的。如圖3所示,電源電壓+5V,參考電壓+5V,IOVDD為+3.3V、LDAC接地。
圖3 DAC8574接口電路
2.3 DAC8574的接口程序設(shè)計(jì)
DAC8574作為從機(jī),S3C2440作為主機(jī),根據(jù)高速模式傳輸協(xié)議編寫DAC8574的接口程序。圖4所示為設(shè)計(jì)的DAC8574接口程序的流程圖。主機(jī)先產(chǎn)生一個(gè)開始狀態(tài),隨后產(chǎn)生高速主機(jī)編碼的串行數(shù)據(jù)00001XXX.從機(jī)設(shè)備不需要確認(rèn)高速主機(jī)編碼,但必須能夠識(shí)別并改變自身內(nèi)部設(shè)置以支持3.4Mbit/s的高速傳輸。主機(jī)產(chǎn)生一個(gè)重復(fù)開始狀態(tài),接著發(fā)送一個(gè)有效的從機(jī)地址字節(jié),本設(shè)計(jì)的從機(jī)地址字節(jié)為10011000,包括7位DAC8574的地址1001100和1位讀寫控制位0(主機(jī)寫入從機(jī))。地址匹配的從機(jī)識(shí)別地址后產(chǎn)生確認(rèn)信號(hào)。本設(shè)計(jì)將控制字節(jié)設(shè)置為00010000,主機(jī)發(fā)送控制字節(jié)設(shè)置從機(jī)運(yùn)行模式后,從機(jī)產(chǎn)生確認(rèn)信號(hào)。隨后,主機(jī)發(fā)送數(shù)據(jù)最高有效位MSB,從機(jī)產(chǎn)生確認(rèn)信號(hào),主機(jī)再發(fā)送數(shù)據(jù)最低有效位LSB,從機(jī)產(chǎn)生確認(rèn)信號(hào)并開始數(shù)據(jù)更新,這樣DAC8574就完成了一次數(shù)據(jù)接收與數(shù)模轉(zhuǎn)換。之后主機(jī)可以繼續(xù)向從機(jī)發(fā)送數(shù)據(jù),最后主機(jī)產(chǎn)生停止?fàn)顟B(tài)結(jié)束當(dāng)前的數(shù)據(jù)傳輸。
圖4 DAC8574工作程序流程圖
評(píng)論