<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 電源與新能源 > 設計應用 > 基于PowerPC的模擬量輸入接口擴展

基于PowerPC的模擬量輸入接口擴展

作者: 時(shí)間:2008-07-01 來(lái)源:網(wǎng)絡(luò ) 收藏

本文引用地址:http://dyxdggzs.com/article/258663.htm
3 硬件結構

MAX197是一種通用A/D芯片,可以和多種處理器接口,本系統通過(guò)MPC8349E的局部總線(xiàn)與MAX197連接。硬件結構如圖3所示。圖3中使局部總線(xiàn)的LBD7~LBD0與MAX197的D0~D7相連。選擇MAX197為軟件設置低功耗工作方式,所以置SHDN管腳為高電平,本系統采用內部基準電壓,所以REF、REFADJ管腳均通過(guò)電容接地。用一路片選信號線(xiàn)做讀高、低位數據的選擇線(xiàn), 直接與HBEN管腳相連,因而采用讀不同地址的方式分別讀取低8位和高4位數據。MAX197的INT管腳與系統的INT相連,作為轉換識別信號,當數據轉換完畢時(shí),MAX197的INT腳產(chǎn)生中斷信號,從而使處理器進(jìn)入中斷處理程序進(jìn)行一路轉換數據的讀入操作。

4 驅動(dòng)軟件設計

設備是應用程序和機器硬件之間的接口。設備為應用程序屏蔽了硬件的細節,在應用程序看來(lái),硬件設備只是一個(gè)設備文件,應用程序可以象操作普通文件一樣對硬件設備進(jìn)行操作。

本系統采用Linux操作系統,需要編制Linux下的設備。A/D轉換設備用作為字符設備,而字符設備驅動(dòng)程序具有比較固定的結構,即將設備抽象成文件來(lái)進(jìn)行操作,因此要在驅動(dòng)程序實(shí)現Open、Close、Write、Read和Ioctl等操作,其中Ioctl對于執行各種類(lèi)型的硬件控制應用比較方便,其在內核中的原型為

int(*ioctl)(struct inode *inode,
struct file *filp,
unsigned int cmd,
unsigned long arg);

A/D轉換的驅動(dòng)程序主要是實(shí)現了這個(gè)函數。其中cmd用來(lái)傳遞通道序號,arg傳遞指向用戶(hù)空間的一個(gè)指針,用來(lái)返回A/D轉換結果。

當寫(xiě)入控制字開(kāi)始轉換后,處理器進(jìn)入其它工作狀態(tài),直到轉換完成產(chǎn)生中斷,處理器在ioctl中讀取A/D轉換結果,并調用put_user(datum,ptr)宏函數將該結果傳遞到用戶(hù)空間。Ioctl函數的流程圖如圖4所示

用戶(hù)程序實(shí)現數據采集需要先打開(kāi)設備文件,分配數據空間,決定A/D轉換通道序號,然后調用ioctl實(shí)現A/D轉換并得到結果。
當對MAX197 的控制字開(kāi)始寫(xiě)操作時(shí),轉換就開(kāi)始了。寫(xiě)操作將選擇多路通道,并確定MAX197的輸入范圍是單極性還是雙極性。一個(gè)寫(xiě)脈沖( )可以開(kāi)始一次采集,或者對采樣進(jìn)行初始化并開(kāi)始轉換。對任何時(shí)鐘模式和采集模式,轉換間隔都延時(shí)12個(gè)時(shí)鐘周期。若在轉換周期寫(xiě)一個(gè)新的控制字節將使轉換失效, 并啟動(dòng)方式可以更精確地控制采樣間隔和轉換。在這種方式下,用戶(hù)通過(guò)2個(gè)寫(xiě)脈沖控制采集和啟動(dòng)轉換。在第一寫(xiě)脈沖中,要使ACQMOD 位=1,它將啟動(dòng)一次采集開(kāi)始。在第二個(gè)寫(xiě)脈沖中,要使ACQMOD 位=0,在 的上升沿開(kāi)始轉換并結束采集。在發(fā)第一和第二個(gè)寫(xiě)脈沖時(shí), 多路輸入通道的地址位值必須一樣。在第二個(gè)寫(xiě)脈沖中, 低功耗模式位( PD0、PD1)可以設一個(gè)新值。當轉換結束產(chǎn)生一個(gè)正確的結果時(shí),芯片發(fā)出一個(gè)標準的中斷信號INT給處理器。在第一個(gè)讀周期或者寫(xiě)一個(gè)新控制字節時(shí),INT就變?yōu)楦唠娖健?



評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>