www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當(dāng)前位置:首頁 > 嵌入式 > 嵌入式軟件
[導(dǎo)讀]VxWorks下數(shù)據(jù)采集卡驅(qū)動程序開發(fā)

1 引 言

隨著嵌入式技術(shù)的發(fā)展,數(shù)據(jù)采集廣泛應(yīng)用于現(xiàn)場設(shè)備中。本文根據(jù)實(shí)際項(xiàng)目需求,開發(fā)了數(shù)據(jù)采集卡在VxWorks操作系統(tǒng)下的驅(qū)動程序,以方便應(yīng)用程序開發(fā)。

本文采用的數(shù)據(jù)采集卡為盛博協(xié)同公司基于PC/104總線的ADT700采集卡,他通過總線與PC/104嵌入式系統(tǒng)構(gòu)成一個高性能的數(shù)據(jù)采集與控制系統(tǒng)。ADT700具有如下特點(diǎn):

模擬輸入 16單端/8差分輸入;12位分辨率;100 kHz最大A/D采樣率;0~+10 V,-5~+5 V,-10~+10 V雙極性或單極性輸入量程;1,2,4,8倍可編程增益;DMA實(shí)現(xiàn)數(shù)據(jù)的高速傳輸。

模擬輸出 4通道輸出;-5~+5 V,-10~+10 V,0~5 V,0~10 V量程可選;通道單獨(dú)置數(shù)或4通道同時(shí)置數(shù)。

數(shù)字量I/O 可編程外圍接口,24通道TTL/CMOS兼容;I/O接口上拉或下拉限流電阻。

定時(shí)/計(jì)數(shù)器 6個16位、10 MHz(最大)定時(shí)/計(jì)

2 VxWorks及其字符設(shè)備驅(qū)動

VxWorks是一個基于搶占式的實(shí)時(shí)操作系統(tǒng),他以其高度的可靠性、優(yōu)秀的實(shí)時(shí)性、靈活的可裁性廣泛應(yīng)用到許多行業(yè)中。在VxWorks中,I/O系統(tǒng)提供了與設(shè)備無關(guān)的用戶接口,應(yīng)用程序可以通過標(biāo)準(zhǔn)的接口函數(shù)如:create(),remove(),open(),close(),read(),write(),ioctl()等來訪問設(shè)備驅(qū)動程序,而不用關(guān)心驅(qū)動程序是如何實(shí)現(xiàn)的。ADT700屬于字符型設(shè)備,他的驅(qū)動程序需要支持以上接口函數(shù)。

下面以字符設(shè)備中open()操作為例,說明字符設(shè)備驅(qū)動程序結(jié)構(gòu)。

如圖1所示,當(dāng)應(yīng)用程序調(diào)用fd=open("/xx0",ORDONLY,0)時(shí),I/O系統(tǒng)根據(jù)文件名"/xx0"在設(shè)備列表中查找設(shè)備(設(shè)備是以文件形式存在的,文件名即設(shè)備名)(如①所示);查找到相應(yīng)設(shè)備后根據(jù)驅(qū)動號定位到驅(qū)動表中(如②所示);I/O系統(tǒng)在文件描述表中預(yù)留一個表項(xiàng)fd=3(如③所示);然后I/O系統(tǒng)調(diào)用驅(qū)動程序中的xxoOpen()函數(shù),返回需要保留的值,即設(shè)備描述指針(如④所示);I/O系統(tǒng)將驅(qū)動號和驅(qū)動返回值填到文件描述符表中(如⑤所示);最后,I/O系統(tǒng)返回新opeh()的文件在文件描述符表中的索引,應(yīng)用程序得到文件描述符fd=3(如⑥所示)。用戶可以通過操作文件來訪問I/O設(shè)備。

3驅(qū)動實(shí)現(xiàn)

3.1 功能分類

ADT700具有A/D,D/A轉(zhuǎn)換,數(shù)字I/O,定時(shí)/計(jì)數(shù)等功能,對其進(jìn)行分析,可分為3類:

(1)A/D轉(zhuǎn)換為只讀,而D/A轉(zhuǎn)換為只寫;
(2)數(shù)字I/O既可讀又可寫;
(3)定時(shí)/計(jì)數(shù)器基本無需讀寫,只設(shè)置即可。

根據(jù)以上功能,得出需要實(shí)現(xiàn)3個驅(qū)動,分別為:

(1)adtDrv驅(qū)動,用于讀入A/D轉(zhuǎn)換后的數(shù)據(jù),寫出D/A轉(zhuǎn)換的數(shù)據(jù),設(shè)備描述符為"/adt";
(2)ppiDrv驅(qū)動,用于讀入或?qū)懗鰯?shù)字I/O的數(shù)字,設(shè)備描述符為"/ppi";
(3)pitDrv驅(qū)動,用于設(shè)置定時(shí)/計(jì)數(shù)器,設(shè)備描述符為"/pit"。

3.2基本流程

(1)安裝驅(qū)動

I/O系統(tǒng)的功能是將用戶的I/O請求轉(zhuǎn)換成對相應(yīng)驅(qū)動程序具體操作函數(shù)的調(diào)用,他通過維護(hù)一個包括所有驅(qū)動程序操作函數(shù)的地址表來實(shí)現(xiàn)的。通過調(diào)用ios-DrvInstall()可以動態(tài)安裝驅(qū)動程序,該函數(shù)的參數(shù)就是7種基本I/O操作函數(shù)指針。iosDrvInstall()函數(shù)將這些地址寫入驅(qū)動表中的一塊空閑存儲區(qū)中,并返回這塊存儲區(qū)的編號,編號即驅(qū)動程序號,可被與驅(qū)動程序相關(guān)聯(lián)的設(shè)備使用。iosDrvInstall()的原型是:

int iosDrvtnstall(FUNCPTR pCreate,F(xiàn)UNCPTRpDelete, FUNCPTR pOpen, FUNCPTR pClose,F(xiàn)UNCPTR pRead,F(xiàn)UNCPTR pWrite,F(xiàn)UNCPTR pI-octl);

當(dāng)調(diào)用iosDrvInstall()注冊I/O函數(shù)成功后,在shell下用iosDrvShow命令可以觀察驅(qū)動表中ADT700的驅(qū)動入口。

(2)創(chuàng)建設(shè)備

創(chuàng)建設(shè)備過程即是調(diào)用設(shè)備創(chuàng)建函數(shù)iosDevAdd()將此設(shè)備加入到I/O系統(tǒng)的設(shè)備列表中。iosDevAdd()的原型為:

STATUS iosDevAdd(DEV_HDR*pDevHdr,char*name,int drvnum);

其中:DEV_HDR是一個指向該設(shè)備的描述符指針;而DEV_HDR結(jié)構(gòu)中的第一項(xiàng)則指向下一個設(shè)備的描述符指針。

設(shè)備創(chuàng)建成功后,在shell下用devs命令可以觀察設(shè)備列表中ADT700的設(shè)備描述符。

以ADT700中adtDrv驅(qū)動為例,以上兩步的完成過程如圖2所示。

(3)實(shí)現(xiàn)I/O函數(shù)

安裝驅(qū)動和創(chuàng)建設(shè)備完成后,就需要實(shí)現(xiàn)I/O函數(shù),即填充驅(qū)動表中的函數(shù)了。對于字符型設(shè)備而言,打開設(shè)備操作與創(chuàng)建設(shè)備操作通常使用相同的函數(shù),底層驅(qū)動中都用xxOpen()完成;而設(shè)備驅(qū)動一旦安裝,就無需刪除,remove()無效,因此在底層驅(qū)動中xxRemove()為空。下面給出了ppiDrv驅(qū)動中ppiRead()的實(shí)現(xiàn)模板。

完成以上3步,就基本實(shí)現(xiàn)了驅(qū)動程序,此時(shí),在應(yīng)用程序中可以用標(biāo)準(zhǔn)接口函數(shù)進(jìn)行操作了。以打開ADT700中定時(shí)/計(jì)數(shù)器(驅(qū)動為pitDrv)為例。

此時(shí),在shell用iosFdShow命令可以觀察到新創(chuàng)建的文件描述符"/pit/timer"。

4 結(jié) 語

本文以數(shù)據(jù)采集卡驅(qū)動程序?yàn)槔?,詳?xì)介紹了Vx-Works操作系統(tǒng)下字符設(shè)備驅(qū)動程序的開發(fā)過程。本驅(qū)動程序封裝了ADT700幾乎所有功能,支持標(biāo)準(zhǔn)的I/O系統(tǒng)接口函數(shù)。用戶可將ADT700當(dāng)作文件,只需定義文件名建立文件描述符,而無需關(guān)心底層實(shí)現(xiàn),即可完成對他的操作,從而縮短了應(yīng)用程序開發(fā)時(shí)間,提高了效率。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運(yùn)營商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學(xué)會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團(tuán))股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉