技術(shù)頻道

娓娓工業(yè)
您現(xiàn)在的位置: 中國傳動(dòng)網(wǎng) > 技術(shù)頻道 > 技術(shù)百科 > AD7888與S3C2410的SPI接口及Linux下嵌入式驅(qū)動(dòng)的實(shí)現(xiàn)

AD7888與S3C2410的SPI接口及Linux下嵌入式驅(qū)動(dòng)的實(shí)現(xiàn)

時(shí)間:2007-12-14 10:54:00來源:dujing

導(dǎo)語:?SPI總線只需3~4根數(shù)據(jù)線和控制線即可擴(kuò)展具有SPI接口的各種I/O器件,其硬件功能很強(qiáng),實(shí)現(xiàn)軟件相當(dāng)簡(jiǎn)單
串行外圍設(shè)備接口SPI(serial peripheral interface)總線技術(shù)是Motorola公司推出的一種同步串行接口,它允許CPU與TTL移位寄存器、A/D或D/A轉(zhuǎn)換器、實(shí)時(shí)時(shí)鐘(RTO)、存儲(chǔ)器以及LCD和LED顯示驅(qū)動(dòng)器等外圍接口器件以串行方式進(jìn)行通訊。 SPI總線只需3~4根數(shù)據(jù)線和控制線即可擴(kuò)展具有SPI接口的各種I/O器件,其硬件功能很強(qiáng),實(shí)現(xiàn)軟件相當(dāng)簡(jiǎn)單。串行A/D轉(zhuǎn)換器具有電路簡(jiǎn)單、工作可靠的特點(diǎn),而ARM芯片被設(shè)計(jì)用于手持設(shè)備以及普通的嵌人式應(yīng)用的集成系統(tǒng),將上述兩種實(shí)用的芯片和SPI總線技術(shù)相結(jié)合以實(shí)現(xiàn)數(shù)據(jù)采集十分有效。 1 AD7888的功能與使用 AD7888是美國模擬器件公司推出的一款高速低功耗12位A/D轉(zhuǎn)換器,采用2.7~5.25 V單電源供電,最大通過率可達(dá)到125 kSPS。AD7888的輸入采樣/保持電路在500 ns內(nèi)獲取一個(gè)信號(hào),采用單端采樣模式,包含8個(gè)單端模擬輸入,模擬輸入電壓從0到VREF。AD7888有2.5 V的片內(nèi)基準(zhǔn)電壓,也可以使用外部基準(zhǔn)電壓,范圍從1.2 V到VDD。CMOS制造工藝確保了低功耗,正常工作時(shí)為2 mW,掉電狀態(tài)下為3uW??梢赃x擇多種電源管理模式(包括數(shù)據(jù)轉(zhuǎn)換后自動(dòng)處于掉電模式),與多種串行接口兼容(SPI/QSPI/MICOWIRE/DSP)。AD7888可廣泛應(yīng)用于電池供電系統(tǒng)(個(gè)人數(shù)字助理、醫(yī)療儀器、移動(dòng)通信)、儀表控制系統(tǒng)和高速調(diào)制/解調(diào)器等領(lǐng)域。該器件采用16腳SOIC和TSSOP外形封裝,外形及引腳定義見圖1和表1。 [align=center][IMG=AD7888的引腳圖]/uploadpic/THESIS/2007/12/2007121410585775264W.jpg[/IMG] 圖1 AD7888的引腳圖 [/align]
AD7888的控制寄存器是8位只寫寄存器。數(shù)據(jù)在SCLK的上升沿從DIN引腳載人,同時(shí)獲取外部模擬量轉(zhuǎn)換的結(jié)果。每次數(shù)據(jù)的傳輸需要準(zhǔn)備16個(gè)連續(xù)時(shí)鐘信號(hào)。只有在片選信號(hào)下降之后的前8個(gè)時(shí)鐘脈沖的上升沿提供的信息裝入控制寄存器。
圖2顯示了詳細(xì)的串行接口時(shí)序圖,串行時(shí)鐘提供了轉(zhuǎn)換時(shí)序,且控制AD7888轉(zhuǎn)換信息的輸入輸出。CS初始化數(shù)據(jù)傳送和轉(zhuǎn)換處理。在其下降沿之后的1.5個(gè)時(shí)鐘周期開始采樣輸入信號(hào),這段時(shí)間表示為tACQ(獲取時(shí)間)。整個(gè)轉(zhuǎn)換過程還需要14.5個(gè)時(shí)鐘周期來完成,這段時(shí)間表示為tCONVERT(轉(zhuǎn)換時(shí)間)。 從AD7888獲取數(shù)據(jù)的整個(gè)轉(zhuǎn)換過程需要16個(gè)時(shí)鐘周期。CS上升沿之后,總線返回高阻狀態(tài)。如果CS繼續(xù)保持低電平,則準(zhǔn)備新一輪的轉(zhuǎn)換。進(jìn)行采樣的輸入通道的選擇是提前寫入控制寄存器的,因此在轉(zhuǎn)換時(shí),用戶必須提前寫入以備通道的轉(zhuǎn)換。也就是說,在進(jìn)行當(dāng)前轉(zhuǎn)換時(shí),用戶就必須提前寫入通道的地址以備下次轉(zhuǎn)換使用。 [align=center] 圖2串行接口時(shí)序圖[/align] 2 S3C2410的主要功能 S3C2410是三星公司推出的采用RISC結(jié)構(gòu)的16/32位微處理器。它基于ARM920T內(nèi)核,采用五級(jí)流水線和哈佛結(jié)構(gòu),最高頻率可達(dá)203 MHz,是高性能和低功耗的硬宏單元。ARM920T具有增強(qiáng)ARM體系的MMU(支持WinCE,EPOC 32和Linux)、16kB的指令和數(shù)據(jù)高速緩存以及高速AMBA總線接口。 S3C2410被設(shè)計(jì)用于手持設(shè)備以及普通的嵌入式應(yīng)用的集成系統(tǒng),為了降低整個(gè)系統(tǒng)的成本,S3C2410還包括下面的部分:LCD控制器(STN&TFT)、NAND Flash引導(dǎo)裝入程序、系統(tǒng)管理(片選邏輯和SDRAM控制器)、3通道UART,4通道DMA、4通道PWM時(shí)鐘、I/O口、RTC、8通道10位ADC及觸摸屏接口、IIC總線接口、IIS總線接口、USB主口和USB設(shè)備口、SD主口和多媒體卡接口、2通道SPI和2通道PLL。 S3C2410有2個(gè)SPI口,可以實(shí)現(xiàn)串行數(shù)據(jù)的傳輸。每個(gè)SPI接口各有2個(gè)移位寄存器分別負(fù)責(zé)接收和發(fā)送數(shù)據(jù)。在傳送數(shù)據(jù)期間,發(fā)送數(shù)據(jù)和接收數(shù)據(jù)是同步進(jìn)行的,傳送的頻率可由相應(yīng)的控制寄存器設(shè)定。如果只想發(fā)送數(shù)據(jù),則接收數(shù)據(jù)為啞元;如果只想接收數(shù)據(jù)。則需發(fā)送啞元“0xff”。SPI接口共有4個(gè)引腳信號(hào):串行時(shí)鐘SCK(SPICLK0,1)、主入從出MISO(SPICLK0,1)和主出從入MOSI(SPIMOSI0,1)數(shù)據(jù)線、低電平有效引腳/SS(nSSO,1)。 S3C2410的SPI接口具有如下特點(diǎn) (1)兼容SPI協(xié)議(ver.2.11); (2)有分別用于發(fā)送和接收的8位移位寄存器; (3)有設(shè)定傳送頻率的8位寄存器; (4)有輪詢、中斷和DMA三種傳送模式。 3 接口與驅(qū)動(dòng) 根據(jù)S3C2410的SPI特點(diǎn)及AD7888的工作原理確定其接口如圖3所示。 [align=center][IMG=AD7888與S3C2410的連接圖]/uploadpic/THESIS/2007/12/2007121410593668804F.jpg[/IMG] 圖3 AD7888與S3C2410的連接圖[/align] 為了實(shí)現(xiàn)S3C2410和AD7888在嵌入式Linux下的高速A/D轉(zhuǎn)換,還編寫了兩者接口的驅(qū)動(dòng)程序,該驅(qū)動(dòng)程序功能的實(shí)現(xiàn)主要由以下幾個(gè)函數(shù)完成。 (1)Init_SPI()完成SPI的初始化    void Init_SPI(void) {   int i;   rSPPRE0=0x32;   rSPCON0=0x1e;   for(i=0;i<10;i++)   rSPTDAT0=0xff;   rGPECON |=0x0a800000;   rGPECON&=(~0x05400000);   rGPEUP |=0x3800;   //GPH5————->CS   rGPHCON |=0x0400;   rGPHCON&=(~0x0800);   rGPHUP&=(~0x20);   rGPHDAT |=0x20; } (2)ad_wr()寫入要求A/D轉(zhuǎn)換的通道   static ssize_t ad_wr(struCt file *file,const char *bur,size_t count,loft_t *offset) {   int ret="0";   int i="0";   dbuf="kmalloc"(count *sizeof(unsigned char),GFP_KERNEL);   copy_from_user(dbuf,bur,count);   for(i=0;i ADTXdata[i]=dbuf[i];   kfree(dbuf);   return ret; } (3)ad_rd()得到A/D轉(zhuǎn)換的結(jié)果    statie ssize_t ad_rd(struet file *file,char *bur,size_t count,loft t *offset) {   int ret="0";   int i="0";   ad_convert();   ad_convert();   dbuf="kmalloc"(count *sizeof(unsigned char),GFP KERNEL);   for(i=0;i dbuf[i]=ADRXdata[i];   copy_to_user(bur,dbuf,count);   kfree(dbuf);   return ret; } (4)ad_convert()實(shí)際完成A/D轉(zhuǎn)換   void ad_convert(void) {   rGPHDAT&=(~0x20);   udelay(100000);   spi_tx_data(ADTXdata[0]);   ADRXdata[0]=rSPRDATO;   spi_tx_data(0xff);   ADRXdata [1 ]=rSPRDATO;   rGPHDAT |=0x20; } (5)spi_tx_data()完成發(fā)送數(shù)據(jù)   void spi_tx_data(unsigned char data) {   spi_poll_done();   rSPTDAT0=data;   spi_poll_done(); } (6)spi_poll_done()輪詢SPI狀態(tài)   static void spi_poll_done(void) {   while(!(rSPSTA0&0x01)); } 說明:1)ADTXdata和ADRXdata是unsigned char的全局?jǐn)?shù)組變量,分別負(fù)責(zé)存放AD7888的控制寄存器數(shù)據(jù)和A/D轉(zhuǎn)換的結(jié)果。2)ad_rd()中ad_convert()調(diào)用了2次,第1次調(diào)用用于通知要采某通道的數(shù)據(jù),第2次調(diào)用用于得到該通道A/D轉(zhuǎn)換的結(jié)果。這樣雖然犧牲了一些轉(zhuǎn)換的速度,但可使應(yīng)用程序編程更加直觀。 4 結(jié)論 應(yīng)用帶SPI接口的串行A/D轉(zhuǎn)換器占用較少的微處理器I/O資源,硬件聯(lián)接簡(jiǎn)單、軟件易于實(shí)現(xiàn),程序運(yùn)行效率高。帶有SPI接口的串行A/D轉(zhuǎn)換器和ARM微處理器的結(jié)合可廣泛應(yīng)用于實(shí)現(xiàn)數(shù)據(jù)采集功能的掌上設(shè)備及其他嵌入式的系統(tǒng),如:醫(yī)療儀器、通信設(shè)備、抄表設(shè)備等領(lǐng)域。

標(biāo)簽:

點(diǎn)贊

分享到:

上一篇:基于ARM7的CAN-USB轉(zhuǎn)換器設(shè)計(jì)

下一篇:微能WIN-V63矢量控制變頻器在...

中國傳動(dòng)網(wǎng)版權(quán)與免責(zé)聲明:凡本網(wǎng)注明[來源:中國傳動(dòng)網(wǎng)]的所有文字、圖片、音視和視頻文件,版權(quán)均為中國傳動(dòng)網(wǎng)(m.u63ivq3.com)獨(dú)家所有。如需轉(zhuǎn)載請(qǐng)與0755-82949061聯(lián)系。任何媒體、網(wǎng)站或個(gè)人轉(zhuǎn)載使用時(shí)須注明來源“中國傳動(dòng)網(wǎng)”,違反者本網(wǎng)將追究其法律責(zé)任。

本網(wǎng)轉(zhuǎn)載并注明其他來源的稿件,均來自互聯(lián)網(wǎng)或業(yè)內(nèi)投稿人士,版權(quán)屬于原版權(quán)人。轉(zhuǎn)載請(qǐng)保留稿件來源及作者,禁止擅自篡改,違者自負(fù)版權(quán)法律責(zé)任。

相關(guān)資訊

網(wǎng)站簡(jiǎn)介|會(huì)員服務(wù)|聯(lián)系方式|幫助信息|版權(quán)信息|網(wǎng)站地圖|友情鏈接|法律支持|意見反饋|sitemap

傳動(dòng)網(wǎng)-工業(yè)自動(dòng)化與智能制造的全媒體“互聯(lián)網(wǎng)+”創(chuàng)新服務(wù)平臺(tái)

網(wǎng)站客服服務(wù)咨詢采購咨詢媒體合作

Chuandong.com Copyright ?2005 - 2024 ,All Rights Reserved 深圳市奧美大唐廣告有限公司 版權(quán)所有
粵ICP備 14004826號(hào) | 營業(yè)執(zhí)照證書 | 不良信息舉報(bào)中心 | 粵公網(wǎng)安備 44030402000946號(hào)