一種基于A(yíng)RM的多路同步的A/D和D/A設計
介紹一種基于ARM的高精度多路同步的數據采集與輸出控制系統的設計方法。設計選用德州儀器公司生產(chǎn)的AD芯片ADS8556和DA芯片 DAC8574,分別采用SPI接口和IIC接口與ARM9芯片S3C2440連接,闡明其硬件設計與軟件設計方法。系統可實(shí)現多路且同步、高速高精度的數據采集與輸出控制功能。
本文引用地址:http://dyxdggzs.com/article/201609/303653.htmARM處理器是一種32位精簡(jiǎn)指令集RISC微處理器,片內集成了豐富的硬件資源,廣泛的應用于許多嵌入式系統中。S3C2440是一款基于A(yíng)RM920T內核的32位RISC嵌入式處理器,運行主頻可達400MHz。本文闡述選用S3C2440處理器設計的一種同步、高速、高精度、多通道的數據采集與信號輸出系統的設計方法。
1.1 ADS8556的功能
系統選用TI公司生產(chǎn)的16位6路同步逐次逼近型模數轉換芯片ADS8556。輸入模擬信號電壓范圍為-12V~+12V。常規應用下功耗為 251.7mW,最大功耗為298.5mW,信噪比可達91.5dB。ADS8556芯片內部包含6個(gè)獨立的采樣保持模塊和對應的6個(gè)獨立的模數轉換模塊,可實(shí)現對6路信號的同時(shí)同步的模數轉換。ADS8556工作模式分為硬件模式和軟件模式,本設計采用硬件模式。在硬件模式下ADS8556的功能設置 (如每對通道的轉換使能、參考電壓選擇等)都是通過(guò)對相關(guān)引腳設置高低電平實(shí)現的。ADS8556支持并行和串行接口方式,本設計采用串行SPI接口與 S3C2440連接。采用串行接口的優(yōu)點(diǎn)是節約S3C2440的引腳資源,S3C2440絕大多數引腳是功能復用的,若采用并行接口會(huì )占用其16個(gè)I/O 引腳資源。
ADS8556具有3個(gè)串行數據輸出端口SDO_A、SDO_B、SDO_C,轉換結果通過(guò)端口使能可選擇這3個(gè)串行端口中的1個(gè)、2個(gè)或3個(gè)工作。當3個(gè)端口都選用工作時(shí),每個(gè)串行端口上輸出對應2路每路16位共32位的轉換結果,輸出時(shí)間需要32個(gè)時(shí)鐘周期,每路最大采樣率可達450kS/s。當選擇2個(gè)串行端口時(shí),每個(gè)端口輸出3路共48位轉換結果,輸出時(shí)間需要48個(gè)時(shí)鐘周期,每路最大采樣率可達375kS/s。由于 S3C2440只有2個(gè)SPI串行接口,所以至多選擇ADS8556的2個(gè)串行輸出端口與其連接。
1.2 ADS8556與S3C2440接口電路設計
本設計選用ADS8556的1個(gè)SPI 串行輸出端口SDO_A與S3C2440的1個(gè)SPI接口SPI0連接,SDO_A端口輸出全部6路共96位轉換結果,輸出時(shí)間需要96個(gè)時(shí)鐘周期,每路最大采樣率可達250kS/s。SPI串口以主從方式工作,S3C2440作為主機,ADS8556作為從機,需要4根或3根線(xiàn)連接,3根用于單向傳輸,4根連接線(xiàn)分別是MOSI(主機輸出/從機輸入),MISO(主機輸入/從機輸出),SCLK(時(shí)鐘信號),CS(片選使能),連接方式如圖1所示。其中SPI0接口只用了3根連接線(xiàn)SPIMISO0、SPICLK0和NSS0,未使用SPIMOSI0,這是由于本設計選擇ADS8556工作于硬件模式,S3C2440沒(méi)有給ADS8556輸入數據,其功能的設置(如每對通道的轉換使能、參考電壓選擇等)都是通過(guò)對相關(guān)使能引腳設置高低電平實(shí)現的。若在軟件模式下,這些功能的選擇是由S3C2440通過(guò)SPIMOSI對ADS8556內部相應寄存器進(jìn)行賦值實(shí)現的,此時(shí)其相關(guān)使能引腳均接地。

圖1 ADS8556與S3C2440接口連接示意圖
1.3 ADS8556的接口程序設計
S3C2440作為主機,ADS8556作為從機,程序中要對S3C2440的SPI串行端口進(jìn)行初始化設置,表1所示為相關(guān)引腳配置。

表1 ADS8556與S3C2440的接口引腳配置
圖2所示為ADS8556的采樣程序流程圖。S3C2440的SPI接口工作于主模式,數據傳輸采用中斷模式。本設計只使用了ADS8556的6路轉換通道中的4個(gè)通道。
圖2 ADS8556工作程序流程圖

2.1 DAC8574的功能
DAC8574是帶有IIC接口的16位4路同步數模轉換芯片。DAC8574帶有一個(gè)IIC串行接口,包括SCL串行時(shí)鐘輸入和SDA串行數據輸入兩個(gè)引腳。輸出四路模擬電壓為VOUTA、VOUTB、VOUTC、VOUTD,電壓范圍為+2.7~+5.5V。由外部提供參考電壓VREFH、 VREFL。A0、A1為IIC地址選擇,A2、A3為擴展地址選擇,A1、A0、A3、A2共可確定16個(gè)地址,在IIC總線(xiàn)上最多可擴展16個(gè) DAC8574。本設計在IIC總線(xiàn)上只使用一個(gè)DAC8574,則設置地址A1A0A3A2=0000。LDAC為同步輸出電壓更新。
DAC8574有三種工作模式:標準模式、快速模式、高速模式。標準模式時(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。標準模式和快速模式傳輸線(xiàn)協(xié)議基本相同,高速模式不同于標準和快速模式。DAC8574與 S3C2440通過(guò)IIC總線(xiàn)連接時(shí),DAC8574作為從機,S3C2440作為主機。本設計將DAC8574設置為高速模式。
2.2 DAC8574與S3C2440接口電路設計
DAC8574通過(guò)IIC接口SDA、SCL引腳與S3C2440連接,其工作模式選擇、通道使能、LDAC功能是由S3C2440通過(guò)SDA輸入設定的。如圖3所示,電源電壓+5V,參考電壓+5V,IOVDD為+3.3V、LDAC接地。
圖3 DAC8574接口電路

2.3 DAC8574的接口程序設計
DAC8574作為從機,S3C2440作為主機,根據高速模式傳輸協(xié)議編寫(xiě)DAC8574的接口程序。圖4所示為設計的DAC8574接口程序的流程圖。主機先產(chǎn)生一個(gè)開(kāi)始狀態(tài),隨后產(chǎn)生高速主機編碼的串行數據00001XXX。從機設備不需要確認高速主機編碼,但必須能夠識別并改變自身內部設置以支持3.4Mbit/s的高速傳輸。主機產(chǎn)生一個(gè)重復開(kāi)始狀態(tài),接著(zhù)發(fā)送一個(gè)有效的從機地址字節,本設計的從機地址字節為10011000,包括7位 DAC8574的地址1001100和1位讀寫(xiě)控制位0(主機寫(xiě)入從機)。地址匹配的從機識別地址后產(chǎn)生確認信號。本設計將控制字節設置為 00010000,主機發(fā)送控制字節設置從機運行模式后,從機產(chǎn)生確認信號。隨后,主機發(fā)送數據最高有效位MSB,從機產(chǎn)生確認信號,主機再發(fā)送數據最低有效位LSB,從機產(chǎn)生確認信號并開(kāi)始數據更新,這樣DAC8574就完成了一次數據接收與數模轉換。之后主機可以繼續向從機發(fā)送數據,最后主機產(chǎn)生停止狀態(tài)結束當前的數據傳輸。
評論