浓毛老太交欧美老妇热爱乱,蜜臀性色av免费,妺妺窝人体色www看美女,久久久久久久久久久大尺度免费视频,麻豆人妻无码性色av专区

位置:51電子網(wǎng) » 技術(shù)資料 » 集成電路

數(shù)據(jù)采集控制卡硬件I/O控制原理

發(fā)布時(shí)間:2008/11/13 0:00:00 訪問(wèn)次數(shù):685

  卡的運(yùn)作均是通過(guò)寄存器的幫助而進(jìn)行的,寄存器分成控制寄存器、狀態(tài)寄存器兩種,負(fù)責(zé)不同的功能,一個(gè)為input,一個(gè)為output。寄存器在卡上就是某一個(gè)芯片的控制中心所在,當(dāng)利用程序下達(dá)詢問(wèn)的指令時(shí),某一個(gè)寄存器就會(huì)將數(shù)據(jù)傳回(實(shí)際是放在總線上供cpu讀。;同樣地,當(dāng)程序欲控制芯片作某一個(gè)操作時(shí)(例如更改設(shè)置,或是輸出信號(hào)),也是將指令寫(xiě)入某一個(gè)規(guī)定的寄存器,該寄存器的值一經(jīng)改變,就反應(yīng)到真實(shí)的硬件操作上。

  卡的寄存器的存取一般都是從之前提到的地址開(kāi)始存儲(chǔ)的,稱為基地址,寄存器的存儲(chǔ)通常也是以一個(gè)字節(jié)為單位,如果卡片上的寄存器較多的話,就會(huì)使用到比較多的字節(jié),卡的功能越復(fù)雜,用到的寄存器就越多。因此同一臺(tái)計(jì)算機(jī)上不同的卡片使用的基地址均不相同。所以實(shí)際的控制程序必須和寄存器打交道,要取得卡片的任何狀態(tài),必須讀取寄存器中的數(shù)值;而要控制狀態(tài)時(shí),也是寫(xiě)人控制的數(shù)值到寄存器,因此程序的對(duì)象就是寄存器,一片卡可能會(huì)有很多寄存器,實(shí)際的數(shù)目由功能來(lái)決定,功能越多,則使用到的寄存器數(shù)量也必定越多。

  現(xiàn)在很多卡的廠商考慮到用戶的方便雨將原本需要較復(fù)雜的寄存器讀寫(xiě)過(guò)程包裝起來(lái),變成所謂的函數(shù),工程師只知道呼叫某一個(gè)函數(shù),就可以成功地控制或是讀取信息,其他的細(xì)節(jié)就由廠商的dll或是ocx代勞了。函數(shù)沒(méi)有看到寄存器的指定,最多也就只有地址和中斷的設(shè)置,函數(shù)使用起來(lái)更精簡(jiǎn)。

  當(dāng)然硬件寄存器讀寫(xiě)要有一定的方法,讀寫(xiě)的方法與操作系統(tǒng)有關(guān)。在傳統(tǒng)dos環(huán)境下(不包含windows中dos虛擬機(jī)),程序運(yùn)行于cpu的ring0級(jí),對(duì)硬件擁有完全的控制權(quán),可以很容易地實(shí)現(xiàn)對(duì)時(shí)間的準(zhǔn)確控制。而windows 95/98使用搶占式多任務(wù)機(jī)制,系統(tǒng)接管全部硬件資源,程序在cpu的ring3級(jí)上運(yùn)行,無(wú)法直接與硬件打交道。windows 98下實(shí)現(xiàn)對(duì)硬件資源訪問(wèn)的方便有:

 。1)利用windows提供的各個(gè)段選擇符標(biāo)號(hào)可直接訪問(wèn)內(nèi)存。

 。2)可用vc斗+提供的函數(shù)直接訪問(wèn)硬件上的內(nèi)存和端口,如int outp(unsigned,int)。

 。3)嵌人匯編訪問(wèn)硬件上的內(nèi)存和端口。

  但在較高級(jí)的系統(tǒng)中(如windows nt,windows2000)這樣的做法也是不行的,這是由于windows操作系統(tǒng)是一個(gè)受保護(hù)的系統(tǒng),隨便下達(dá)硬件控制指令的話,將會(huì)危害到整個(gè)系統(tǒng)的穩(wěn)定性,硬仵的操作通常是利用微軟的sdk(software development kit)和ddk(device development kit)來(lái)完成。

  在windowsnt下,由于對(duì)i/o端口的直接操作被屏蔽,普通用戶只能借助一定的驅(qū)動(dòng)開(kāi)發(fā)工具來(lái)開(kāi)發(fā)設(shè)各的驅(qū)動(dòng)程序,實(shí)現(xiàn)用戶應(yīng)用程序和硬件之間的通信。所以設(shè)各的驅(qū)動(dòng)程序的作用函數(shù)供工程師使用來(lái)控制硬件,而不涉及操作系統(tǒng)底層編程,F(xiàn)在有各種設(shè)備驅(qū)動(dòng)程序?qū)S瞄_(kāi)發(fā)軟件,如windriver能在很短的時(shí)間內(nèi)開(kāi)發(fā)出高效的設(shè)備驅(qū)動(dòng)。

  程序語(yǔ)言例如visualbasic、delphi、c++等等常用的語(yǔ)言,都可以開(kāi)發(fā)應(yīng)用程序,其中visual basic沒(méi)有提供直接訪問(wèn)底層硬件的控件和方法本身的程序無(wú)法直接控制到適配卡,必須通過(guò)dll或是額外ocx控件的協(xié)助才行,通過(guò)dll或是ocx,控制程序碼就經(jīng)過(guò)層層的轉(zhuǎn)譯,一直到卡片上的寄存器,而檢測(cè)程序代碼則經(jīng)相反的管道將狀態(tài)傳回到我們所寫(xiě)的程序里。但如果由最基礎(chǔ)的程序一直寫(xiě)到硬件卡片控制的話,將會(huì)使得工程師花費(fèi)太多的時(shí)間而無(wú)法順利完成任務(wù)。所以現(xiàn)在就出現(xiàn)了組態(tài)軟件如wincc,控制硬件通信不需要涉及底層,只需要設(shè)置相應(yīng)的參數(shù)就可以了,大大減輕了工程師的負(fù)擔(dān),使工程師主要精力花在界面和工藝上,特別適合于工程應(yīng)用。

  歡迎轉(zhuǎn)載,信息來(lái)自維庫(kù)電子市場(chǎng)網(wǎng)(www.dzsc.com)



  卡的運(yùn)作均是通過(guò)寄存器的幫助而進(jìn)行的,寄存器分成控制寄存器、狀態(tài)寄存器兩種,負(fù)責(zé)不同的功能,一個(gè)為input,一個(gè)為output。寄存器在卡上就是某一個(gè)芯片的控制中心所在,當(dāng)利用程序下達(dá)詢問(wèn)的指令時(shí),某一個(gè)寄存器就會(huì)將數(shù)據(jù)傳回(實(shí)際是放在總線上供cpu讀。煌瑯拥,當(dāng)程序欲控制芯片作某一個(gè)操作時(shí)(例如更改設(shè)置,或是輸出信號(hào)),也是將指令寫(xiě)入某一個(gè)規(guī)定的寄存器,該寄存器的值一經(jīng)改變,就反應(yīng)到真實(shí)的硬件操作上。

  卡的寄存器的存取一般都是從之前提到的地址開(kāi)始存儲(chǔ)的,稱為基地址,寄存器的存儲(chǔ)通常也是以一個(gè)字節(jié)為單位,如果卡片上的寄存器較多的話,就會(huì)使用到比較多的字節(jié),卡的功能越復(fù)雜,用到的寄存器就越多。因此同一臺(tái)計(jì)算機(jī)上不同的卡片使用的基地址均不相同。所以實(shí)際的控制程序必須和寄存器打交道,要取得卡片的任何狀態(tài),必須讀取寄存器中的數(shù)值;而要控制狀態(tài)時(shí),也是寫(xiě)人控制的數(shù)值到寄存器,因此程序的對(duì)象就是寄存器,一片卡可能會(huì)有很多寄存器,實(shí)際的數(shù)目由功能來(lái)決定,功能越多,則使用到的寄存器數(shù)量也必定越多。

  現(xiàn)在很多卡的廠商考慮到用戶的方便雨將原本需要較復(fù)雜的寄存器讀寫(xiě)過(guò)程包裝起來(lái),變成所謂的函數(shù),工程師只知道呼叫某一個(gè)函數(shù),就可以成功地控制或是讀取信息,其他的細(xì)節(jié)就由廠商的dll或是ocx代勞了。函數(shù)沒(méi)有看到寄存器的指定,最多也就只有地址和中斷的設(shè)置,函數(shù)使用起來(lái)更精簡(jiǎn)。

  當(dāng)然硬件寄存器讀寫(xiě)要有一定的方法,讀寫(xiě)的方法與操作系統(tǒng)有關(guān)。在傳統(tǒng)dos環(huán)境下(不包含windows中dos虛擬機(jī)),程序運(yùn)行于cpu的ring0級(jí),對(duì)硬件擁有完全的控制權(quán),可以很容易地實(shí)現(xiàn)對(duì)時(shí)間的準(zhǔn)確控制。而windows 95/98使用搶占式多任務(wù)機(jī)制,系統(tǒng)接管全部硬件資源,程序在cpu的ring3級(jí)上運(yùn)行,無(wú)法直接與硬件打交道。windows 98下實(shí)現(xiàn)對(duì)硬件資源訪問(wèn)的方便有:

 。1)利用windows提供的各個(gè)段選擇符標(biāo)號(hào)可直接訪問(wèn)內(nèi)存。

 。2)可用vc斗+提供的函數(shù)直接訪問(wèn)硬件上的內(nèi)存和端口,如int outp(unsigned,int)。

 。3)嵌人匯編訪問(wèn)硬件上的內(nèi)存和端口。

  但在較高級(jí)的系統(tǒng)中(如windows nt,windows2000)這樣的做法也是不行的,這是由于windows操作系統(tǒng)是一個(gè)受保護(hù)的系統(tǒng),隨便下達(dá)硬件控制指令的話,將會(huì)危害到整個(gè)系統(tǒng)的穩(wěn)定性,硬仵的操作通常是利用微軟的sdk(software development kit)和ddk(device development kit)來(lái)完成。

  在windowsnt下,由于對(duì)i/o端口的直接操作被屏蔽,普通用戶只能借助一定的驅(qū)動(dòng)開(kāi)發(fā)工具來(lái)開(kāi)發(fā)設(shè)各的驅(qū)動(dòng)程序,實(shí)現(xiàn)用戶應(yīng)用程序和硬件之間的通信。所以設(shè)各的驅(qū)動(dòng)程序的作用函數(shù)供工程師使用來(lái)控制硬件,而不涉及操作系統(tǒng)底層編程,F(xiàn)在有各種設(shè)備驅(qū)動(dòng)程序?qū)S瞄_(kāi)發(fā)軟件,如windriver能在很短的時(shí)間內(nèi)開(kāi)發(fā)出高效的設(shè)備驅(qū)動(dòng)。

  程序語(yǔ)言例如visualbasic、delphi、c++等等常用的語(yǔ)言,都可以開(kāi)發(fā)應(yīng)用程序,其中visual basic沒(méi)有提供直接訪問(wèn)底層硬件的控件和方法本身的程序無(wú)法直接控制到適配卡,必須通過(guò)dll或是額外ocx控件的協(xié)助才行,通過(guò)dll或是ocx,控制程序碼就經(jīng)過(guò)層層的轉(zhuǎn)譯,一直到卡片上的寄存器,而檢測(cè)程序代碼則經(jīng)相反的管道將狀態(tài)傳回到我們所寫(xiě)的程序里。但如果由最基礎(chǔ)的程序一直寫(xiě)到硬件卡片控制的話,將會(huì)使得工程師花費(fèi)太多的時(shí)間而無(wú)法順利完成任務(wù)。所以現(xiàn)在就出現(xiàn)了組態(tài)軟件如wincc,控制硬件通信不需要涉及底層,只需要設(shè)置相應(yīng)的參數(shù)就可以了,大大減輕了工程師的負(fù)擔(dān),使工程師主要精力花在界面和工藝上,特別適合于工程應(yīng)用。

  歡迎轉(zhuǎn)載,信息來(lái)自維庫(kù)電子市場(chǎng)網(wǎng)(www.dzsc.com)



相關(guān)IC型號(hào)

熱門點(diǎn)擊

 

推薦技術(shù)資料

DS2202型示波器試用
    說(shuō)起數(shù)字示波器,普源算是國(guó)內(nèi)的老牌子了,F(xiàn)QP8N60... [詳細(xì)]
版權(quán)所有:51dzw.COM
深圳服務(wù)熱線:13692101218  13751165337
粵ICP備09112631號(hào)-6(miitbeian.gov.cn)
公網(wǎng)安備44030402000607
深圳市碧威特網(wǎng)絡(luò)技術(shù)有限公司
付款方式


 復(fù)制成功!