DAC7714在嵌入式激光跟蹤儀中的應(yīng)用
2.2 DAC7714硬件設(shè)計(jì)
DAC7714硬件設(shè)計(jì)比較簡(jiǎn)單,其可編程引腳RESET、LOADDACS、CS、CLK、SDI分別與AT91RM9200的IO口PA0-PA1、PA3-PA5連接,為下一步驅(qū)動(dòng)程序開(kāi)發(fā)打下基礎(chǔ);其VOUTA、VOUTB接兩路電機(jī)的控制信號(hào);VREFL接地,VREFH接+10 V,使用單極性接法。其具體連接如圖1所示。本文引用地址:http://www.ex-cimer.com/article/148829.htm
3 驅(qū)動(dòng)程序設(shè)計(jì)
驅(qū)動(dòng)程序的目的是驅(qū)動(dòng)硬件正常工作,所以編寫(xiě)驅(qū)動(dòng)程序要針對(duì)特定的硬件來(lái)進(jìn)行。在嵌入式激光跟蹤儀中,需要編寫(xiě)DAC7714的驅(qū)動(dòng)程序,內(nèi)核將以設(shè)備節(jié)點(diǎn)的形式調(diào)用、管理該芯片。DAC7714屬于串行DA轉(zhuǎn)換器,需要根據(jù)其工作時(shí)序圖,控制AT91RM9200的上述引腳,模擬其工作時(shí)序,在內(nèi)核Linux-2.4.19中完成驅(qū)動(dòng)程序的設(shè)計(jì)。
3.1 DAC7714工作時(shí)序圖
DAC7714完成一次數(shù)模轉(zhuǎn)換,需要在CS為低電平期間,在CLK的上升沿,串行輸出16位數(shù)據(jù)到SDI。16位數(shù)據(jù)中,前兩位A1和A0的組合將決定對(duì)某一通道進(jìn)行轉(zhuǎn)換輸出(00-A通道、01-B通道、10-C通道、11-D通道),接下來(lái)兩位為無(wú)效位,最后的12位數(shù)據(jù)即真正需要轉(zhuǎn)換的數(shù)據(jù)。其工作時(shí)序圖如圖2所示。
3.2 驅(qū)動(dòng)程序組成
DAC7714驅(qū)動(dòng)程序作為設(shè)備文件,同樣分為open、write、release等幾個(gè)操作。對(duì)于內(nèi)核來(lái)說(shuō),DAC7714屬于字符型設(shè)備,并為該設(shè)備命名為Name[]=“DAC7714drv”。該模塊在使用時(shí)采用insmod命令進(jìn)行動(dòng)態(tài)加載,使用rmmod命令進(jìn)行動(dòng)態(tài)卸載。DAC7714驅(qū)動(dòng)程序主要由注冊(cè)函數(shù)、注銷函數(shù)、初始化函數(shù)、DA輸出函數(shù)構(gòu)成。
用戶在使用insmod命令加載模塊時(shí),實(shí)際調(diào)用的是以下注冊(cè)函數(shù):
評(píng)論