微型計算機應(yīng)用系統(tǒng)設(shè)計案例_第1頁
微型計算機應(yīng)用系統(tǒng)設(shè)計案例_第2頁
微型計算機應(yīng)用系統(tǒng)設(shè)計案例_第3頁
微型計算機應(yīng)用系統(tǒng)設(shè)計案例_第4頁
微型計算機應(yīng)用系統(tǒng)設(shè)計案例_第5頁
已閱讀5頁,還剩81頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

第8章

微型計算機應(yīng)用系統(tǒng)設(shè)計案例微型計算機應(yīng)用系統(tǒng)設(shè)計PCI總線、USB總線接口設(shè)計Windows驅(qū)動程序設(shè)計學(xué)習(xí)目標(biāo)本章通過工程應(yīng)用實例介紹幾種典型微型計算機應(yīng)用系統(tǒng)及其軟硬件設(shè)計的一般方法。通過學(xué)習(xí),要求讀者了解常用的微型計算機應(yīng)用系統(tǒng),熟悉其硬件設(shè)計方法和軟件編程思路。學(xué)習(xí)重點常用微型計算機應(yīng)用系統(tǒng)的類型,典型系統(tǒng)的一般設(shè)計方法。USB總線接口設(shè)計及驅(qū)動程序編制方法。8.1

微型計算機應(yīng)用系統(tǒng)設(shè)計8.1.1概述在工業(yè)生產(chǎn)上用到的計算機應(yīng)用系統(tǒng),其具體組成、硬件部件和軟件系統(tǒng),都因使用的目的、對功能的要求和投資的多少而各不相同?,F(xiàn)就系統(tǒng)功能、使用目的介紹幾種常見的典型計算機應(yīng)用系統(tǒng)。1.數(shù)據(jù)采集和數(shù)據(jù)處理系統(tǒng)數(shù)據(jù)采集和數(shù)據(jù)處理系統(tǒng)結(jié)構(gòu)如圖8-1所示。嚴(yán)格地說,這種系統(tǒng)不由計算機控制,因為計算機并不直接參與控制。這種系統(tǒng)的主要作用如下:圖8-1數(shù)據(jù)采集和數(shù)據(jù)處理系統(tǒng)結(jié)構(gòu)生產(chǎn)過程的集中監(jiān)視。計算機對生產(chǎn)過程(被控對象)的不同變量參數(shù)進行巡回檢測,并將采集到的數(shù)據(jù)以一定格式在監(jiān)視器上顯示或通過打印機打印出來,實現(xiàn)對生產(chǎn)過程的集中監(jiān)視。操作指導(dǎo)。計算機對采集到的數(shù)據(jù)進行分析處理,并給出對生產(chǎn)過程控制的建議,由過程的操縱者依給定的建議實現(xiàn)對過程的控制。2.直接數(shù)字控制系統(tǒng)直接數(shù)字控制(DDC)系統(tǒng)結(jié)構(gòu)如圖8-2所示。計算機通過輸入通道對被控對象進行實時數(shù)據(jù)采集,并按控制規(guī)律進行實時決策,產(chǎn)生控制指令,再通過輸出通道,對被控對象實現(xiàn)直接控制。由于這種系統(tǒng)中的計算機直接參與生產(chǎn)過程的控制,所以要求實時性好、可靠性高并且環(huán)境適應(yīng)性強。圖8-2直接數(shù)字控制系統(tǒng)結(jié)構(gòu)3.監(jiān)督計算機控制系統(tǒng)監(jiān)督計算機控制(SCC)系統(tǒng)結(jié)構(gòu)如圖8-3所示。該系統(tǒng)是二級計算機控制系統(tǒng)。其中直接數(shù)字控制完成生產(chǎn)過程的直接控制;監(jiān)督計算機根據(jù)生產(chǎn)過程工況和已知數(shù)學(xué)模型進行優(yōu)化分析,將生產(chǎn)的最優(yōu)設(shè)定值作為直接數(shù)字控制的指令信號,由直接數(shù)字控制系統(tǒng)執(zhí)行。監(jiān)督計算機由于承擔(dān)上一級控制與管理任務(wù),要求其數(shù)據(jù)處理功能要強,存儲容量要大等。圖8-3監(jiān)督計算機控制系統(tǒng)結(jié)構(gòu)4.分散型控制系統(tǒng)隨著工業(yè)生產(chǎn)過程規(guī)模的擴大和綜合管理與控制要求的提高,人們開始應(yīng)用以多臺計算機為基礎(chǔ)的分散型控制系統(tǒng)(DCS),如圖8-4所示。該系統(tǒng)采用分散控制原理、集中操作、分級管理與控制和綜合協(xié)調(diào)的設(shè)計原則,把系統(tǒng)從上而下分成生產(chǎn)管理級、控制管理級和過程控制級等,形成分布式控制。各級之間通過數(shù)據(jù)傳輸總線及網(wǎng)絡(luò)相互連接起來。系統(tǒng)中的過程控制級完成過程的檢測任務(wù)。控制管理級通過協(xié)調(diào)過程控制器工作,實現(xiàn)生產(chǎn)過程的動態(tài)優(yōu)化。生產(chǎn)管理級完成制定生產(chǎn)計劃和工藝流程以及對產(chǎn)品、人員、財務(wù)管理實現(xiàn)靜態(tài)優(yōu)化。隨著企業(yè)生產(chǎn)規(guī)模的逐步擴大,對生產(chǎn)過程自動化各項指標(biāo)的要求越來越高,系統(tǒng)向著更加復(fù)雜、更加高級的方向發(fā)展,但同時對其工作可靠性的保證有著更高的要求。自微型計算機出現(xiàn)后,因其體積減小、成本大幅度下降、可靠性不斷提高而改變了以往只使用由一個CPU組成的裝置

實現(xiàn)對多個回路自動控制的概念。人們通過實踐發(fā)現(xiàn),生產(chǎn)過程中的每一個局部使用各自獨立的帶CPU的控制單元來完

成其自動控制作用,其控制功能會得到加強,工作更加可靠,維修更加方便,性能價格比會顯著提高,這就是分散型控制系統(tǒng)的設(shè)計思想。這一設(shè)計思想已被越來越多的人所接受。圖8-4分散型控制系統(tǒng)分散型控制系統(tǒng)雖然能完成生產(chǎn)過程中各個局部的控制作用,但是各單元之間并無直接的聯(lián)系,于是人們又使用一臺檔次較高的上位計算機對各分散的下位控制單元進行統(tǒng)一的管理。上位機根據(jù)接收到各下位控制單元送來的數(shù)據(jù),經(jīng)過分析和處理后對下位控制單元進行監(jiān)督控制,實現(xiàn)對整個生產(chǎn)過程控制的協(xié)調(diào)和優(yōu)化。上位機必要時還可以對生產(chǎn)過程進行編制計劃,對原材料及能源的調(diào)度、成本核算、庫存管理、打印統(tǒng)計報表等進行管理。8.1.2

微型計算機應(yīng)用系統(tǒng)設(shè)計舉例1.企業(yè)數(shù)據(jù)采集與網(wǎng)絡(luò)管理系統(tǒng)現(xiàn)在中小型企業(yè)的生產(chǎn)設(shè)備中,多數(shù)設(shè)備的電氣控制和監(jiān)控

繁瑣,不能有效地對工作現(xiàn)場的控制設(shè)備進行精確的操作,而且

大多數(shù)設(shè)備之間獨立工作,不能形成一個完整、有效的管理體系。各設(shè)備的操作結(jié)果必須由操作人員單獨向有關(guān)負責(zé)人匯報或集中

匯總后再上交給企業(yè)決策管理部門,其手續(xù)繁雜、效率低下,不

能及時準(zhǔn)確地將生產(chǎn)情況反饋到管理部門,這是一種陳舊的管理

模式。采用“企業(yè)數(shù)據(jù)采集與網(wǎng)絡(luò)管理系統(tǒng)”可以徹底改變這種

效率低下的生產(chǎn)方式,提升和促進企業(yè)生產(chǎn)效率及競爭力水平,

這也是現(xiàn)代企業(yè)管理的發(fā)展方向。這個系統(tǒng)對目前使用的各種生

產(chǎn)設(shè)備進行信息化改造,對所有生產(chǎn)數(shù)據(jù)進行處理并發(fā)送到網(wǎng)上,做到了無紙化作業(yè),保證了生產(chǎn)數(shù)據(jù)的科學(xué)性和可靠性,并實現(xiàn)

了數(shù)據(jù)共享。1)生產(chǎn)設(shè)備的分布情況假設(shè)該企業(yè)所管理的設(shè)備分布在五個車間,系統(tǒng)對五個車間的重要加工設(shè)備和試驗臺加裝了下述數(shù)據(jù)采集與通信裝置,其生產(chǎn)設(shè)備分布示意圖如圖8-5所示。圖8-5設(shè)備分布示意圖2)數(shù)據(jù)采集與網(wǎng)絡(luò)管理系統(tǒng)設(shè)計(1)系統(tǒng)總體構(gòu)成。本系統(tǒng)是一個基于網(wǎng)絡(luò)通信(包括以太網(wǎng)絡(luò)通信和RS-485總線網(wǎng)絡(luò)通信)的設(shè)備數(shù)據(jù)采集和監(jiān)控系統(tǒng),主要由服務(wù)器、以太網(wǎng)絡(luò)、上位機監(jiān)控系統(tǒng)、RS-485總線網(wǎng)絡(luò)、設(shè)備數(shù)據(jù)采集及通信系統(tǒng)和系統(tǒng)管理對象組成。該系統(tǒng)是集網(wǎng)絡(luò)通信技術(shù)、單片機技術(shù)、數(shù)據(jù)庫技術(shù)和高級編程語言程序設(shè)計于一體的綜合工程,這些技術(shù)相互聯(lián)系,相互交叉。整個系統(tǒng)的結(jié)構(gòu)見圖8-6。圖8-6系統(tǒng)構(gòu)成網(wǎng)絡(luò)圖(2)車間級網(wǎng)絡(luò)。每個車間設(shè)一臺設(shè)備監(jiān)控計算機,用于管理本車間各臺設(shè)備。每臺設(shè)備配置一臺數(shù)據(jù)采集裝置。圖8-7是一個車間內(nèi)的設(shè)備通信總線連接及設(shè)備數(shù)據(jù)采集裝置圖。圖8-7車間一級設(shè)備網(wǎng)的組成(3)設(shè)備數(shù)據(jù)采集系統(tǒng)。每臺設(shè)備數(shù)據(jù)采集子系統(tǒng)包括

CPU控制電路、薄膜鍵盤控制、隔離數(shù)據(jù)采集電路(根據(jù)信

號類型和路數(shù)設(shè)計,有隔離模擬量、開關(guān)量、脈沖量、數(shù)字量、單總線數(shù)字網(wǎng)絡(luò)等各種形式)、隔離開關(guān)電源、LCD漢字圖形顯示器、通信網(wǎng)絡(luò)接口等,如圖8-8所示。圖8-8設(shè)備數(shù)據(jù)處理子系統(tǒng)3)系統(tǒng)的優(yōu)點本系統(tǒng)能夠繼續(xù)利用企業(yè)各種現(xiàn)有設(shè)備,通過加裝數(shù)據(jù)采集接口、漢字圖形顯示器和網(wǎng)絡(luò)通信接口,改造傳統(tǒng)設(shè)備,實現(xiàn)車間生產(chǎn)設(shè)備數(shù)字化;可以對生產(chǎn)工作進行準(zhǔn)確的檢測和數(shù)據(jù)處理,并把檢測數(shù)據(jù)及時送監(jiān)控計算機,存入數(shù)據(jù)庫,進行統(tǒng)計、打印和歸檔;可以為保證生產(chǎn)質(zhì)量提供可靠依據(jù),為企業(yè)加強科學(xué)管理、提高經(jīng)濟效益、減少物料和工時浪費、提高檢修效率提供科學(xué)手段和工具。2.自動化倉儲系統(tǒng)自動化倉儲系統(tǒng)包含了以下幾個方面的含義:自動化倉儲系統(tǒng)包括多層貨架、運輸設(shè)備以及計算機控制和通信系統(tǒng)。自動化倉儲系統(tǒng)以高層立體貨架為標(biāo)志,以成套先

進的搬運設(shè)備為基礎(chǔ),以先進的計算機控制技術(shù)為主要手段,高效率地利用倉儲空間,節(jié)約時間和人力進行貨物出入庫作

業(yè)。自動化倉儲系統(tǒng)的設(shè)計和規(guī)劃是集物流監(jiān)控技術(shù)、計算機應(yīng)用技術(shù)、通信技術(shù)、設(shè)備及貨位優(yōu)化管理技術(shù)等于一體的綜合工程項目。圖8-9自動化倉儲系統(tǒng)的網(wǎng)絡(luò)構(gòu)成圖現(xiàn)場操作人員可以利用觸摸屏設(shè)備方便地進行參數(shù)設(shè)置和在線修改,實現(xiàn)演示和管理功能。檢測裝置。為了實現(xiàn)對自動化倉儲系統(tǒng)中各種作業(yè)設(shè)備的控制,并保證系統(tǒng)安全可靠地運行,自動倉儲系統(tǒng)必須具有多種檢測裝置。檢測裝置連接到I/O模塊,通過對檢測數(shù)據(jù)的判斷、處理,為系統(tǒng)決策提供最佳依據(jù),使系統(tǒng)處于理想的工作狀態(tài)。信息識別。信息識別的作用在于完成對貨物名稱、類別、貨號、數(shù)量、等級、目的地、生產(chǎn)廠的識別。在自動化倉儲系統(tǒng)中,通常采用條形碼、磁條、光學(xué)字符和射頻等識別技術(shù)。其中條形碼識別技術(shù)應(yīng)用最為普遍。本系統(tǒng)中計算機管理信息系統(tǒng)通過對貨物在進出倉庫時的信息識別對貨物進行管理??刂蒲b置。控制裝置是自動化倉儲系統(tǒng)運行成功的關(guān)鍵。為了實現(xiàn)自動運轉(zhuǎn),自動化倉儲系統(tǒng)中所有的存取設(shè)備和輸送設(shè)備本身必須配備各種控制裝置。這些控制裝置種類較多,從普通開關(guān)、繼電器,到微處理器、單片機和可編程控制器(PLC),根據(jù)各自的設(shè)定功能完成一定的控制任務(wù)。監(jiān)控及調(diào)度。監(jiān)控系統(tǒng)是自動化倉儲系統(tǒng)的信息樞紐。自動化倉儲系統(tǒng)許多設(shè)備的運行都需要由監(jiān)控系統(tǒng)統(tǒng)一調(diào)度,通過監(jiān)控系統(tǒng)的監(jiān)視畫面可以直觀地看到各設(shè)備的運行情況。本系統(tǒng)中管理級上位機配置PROFIBUS通信卡

CP5611,PROFIBUS-DP網(wǎng)絡(luò)。應(yīng)用Visual

Basic高級語言編制監(jiān)控程序,將現(xiàn)場情況以形象直觀的圖形界面顯示給控制室操作人員,完成實時管理控制功能。計算機管理。計算機管理系統(tǒng)完成對整個倉儲系統(tǒng)的賬目管理和作業(yè)管理,并負責(zé)與上級系統(tǒng)的通信和企業(yè)信息管理系統(tǒng)的部分任務(wù)。本系統(tǒng)利用Microsoft

SQL

2000對倉儲系統(tǒng)的數(shù)據(jù)進行賬目管理。數(shù)據(jù)通信。自動化倉儲系統(tǒng)是一個復(fù)雜的自動化系統(tǒng),它是由眾多的子系統(tǒng)組成的。為了完成規(guī)定的任務(wù),各系統(tǒng)之間、各設(shè)備之間要進行大量的信息交換。本系統(tǒng)中采用PROFIBUS現(xiàn)場總線、紅外光傳輸?shù)确绞?。大屏幕顯示。在操作現(xiàn)場,操作人員可以通過顯示設(shè)備的指示進行各種搬運、揀選和添加操作;在控制室,人們通過屏幕觀察現(xiàn)場的操作以及設(shè)備的運行情況。8.2

PCI總線、USB總線接口設(shè)計8.2.1 PCI總線與DSP通信接口電路設(shè)計1.PCI總線接口電路的實現(xiàn)方法PCI總線接口電路有兩種實現(xiàn)方法:一種是采用可編程邏輯器件CPLD或FPGA實現(xiàn)通用PCI接口;另一種是采用類似于Quick

Logic公司的一次性可編程芯片來處理,每片可編程芯片內(nèi)都內(nèi)嵌PCI接口電路,也可根據(jù)應(yīng)用的需要來裁剪燒寫,但只能燒寫一次。2.PCI總線接口芯片選擇目前市場上提供的專用芯片主要有AMCC、PLX和Cypress等公司的系列產(chǎn)品。從市場情況來看,PLX是PCI接口芯片的行業(yè)巨頭,該公司提供多個系列的產(chǎn)品,例如主設(shè)備接口芯片9060、9080、9054等,從設(shè)備接口芯片9030、9050、9052等,分別支持“主控”和“從控”兩種模式。所謂“主控”,就是PCI接口芯片可以讓用戶電路控制PC資源,即主動對目標(biāo)設(shè)備發(fā)讀寫信號;“從控”則只能讓PC來控制用戶電路工作,而用戶電路只能被動接受,就像ISA總線一樣。在支持該模式的芯片中,9030專門為嵌入式設(shè)計,支持Compact

PCI;9050專門為ISA設(shè)備轉(zhuǎn)換PCI總線接口而設(shè)計;9052是9050的升級版本。這些芯片價格低廉,不支持DMA,適合于設(shè)計基于PCI總線的以中斷、查詢方式與主機交互的系統(tǒng)。3.PCI

9052的主要特點PCI9052是PLX公司繼PCI9050之后推出的低成本PCI總線目標(biāo)接口芯片,符合PCI2.1規(guī)范,采用CMOS工藝,低功耗,PQFP

160引腳封裝。其主要特點如下:包括一個64

B的寫FIFO存儲器和一個32

B的讀FIFO存儲器,可實現(xiàn)高性能的突發(fā)式數(shù)據(jù)傳輸。ISA模式下支持PCI總線到ISA總線的單周期存儲器

(8位或16位)讀寫和I/O訪問,實現(xiàn)ISA總線到PCI總線的平滑過渡。支持兩個來自局部總線的中斷,可生成一個PCI中斷,利用軟件寫內(nèi)部寄存器位也可以達到同樣的目的。PCI9052的局部總線與PCI總線的時鐘相互獨立運行,局部總線的時鐘頻率范圍為0~40MHz,TTL電平,PCI的時鐘頻率范圍為0~33MHz,兩種總線的異步運行方便了高低速設(shè)備的兼容。可編程的局部總線配置,支持復(fù)用或非復(fù)用模式的8、16或32位的局部總線。串行E2PROM提供PCI總線和局部總線的部分重要配置信息。4個局部設(shè)備片選信號,各設(shè)備的基址和地址范圍及其映射可由串行E2PROM或主機編程實現(xiàn)。5個局部地址空間,基址和地址范圍及其映射可由串行E2PROM或主機編程實現(xiàn)。可對局部總線的預(yù)取計數(shù)器編程為0(非預(yù)取)、4、8、16或連續(xù)(預(yù)取計數(shù)器關(guān)閉)預(yù)取模式。PCI鎖定機制,PCI主控設(shè)備可以通過鎖定信號獨占對PC

9052的訪問。4.PCI

9052的工作原理圖8-10PCI

9052的總線結(jié)構(gòu)5.DSP芯片TMS

320LF2407介紹TMS

320LF2407器件是美國TI公司開發(fā)的面向電機控制的低成本、高性能的DSP器件。TMS

320LF2407的指令周期只有33

ns,可以很好地滿足系統(tǒng)的實時性要求,能夠?qū)崿F(xiàn)復(fù)雜的控制算法。TMS

320LF2407在單片處理器中集成了高性能的TMS320CxLP

DSP內(nèi)核(運算能力為30

MIPS),為電機控制而優(yōu)化的事件管理器及PWM輸出接口,可同時完成采樣的雙

工A/D轉(zhuǎn)換器,并行的電機電流讀數(shù)轉(zhuǎn)換與通信,F(xiàn)lash存儲器或ROM程序存儲器,還包括同步、異步串行外設(shè)接口,

比較單元,通用定時器及與光電編碼器接口的編碼單元等資源。TMS

320LF2407的主要特點如下:采用高靜態(tài)CMOS技術(shù),使得供電電壓降為3.3V,減小了控制器的功耗;30MIPS的執(zhí)行速度使得指令周期縮短到33

ns(30

MHz),提高了控制器的實時控制能力?;赥MS320C2xx

DSP的CPU核保證了

TMS320LF240X系列DSP代碼和TMS320系列DSP代碼兼容。片內(nèi)高達32K字的FLASH程序存儲器,高達1.5K字的數(shù)據(jù)/程序RAM,544字雙口RAM(DARAM)和2K的單口

RAM(SARAM)。兩個事件管理器EVA和EVB,各包括兩個16位的通用定時器和8個16位的脈沖調(diào)制(PWM)通道。擴展的外部存儲器(LF2407)總共192K字:64K字程序存儲器;64K字?jǐn)?shù)據(jù)存儲器;64K字I/O尋址空間??撮T狗定時器模塊(WDT)。基于鎖相環(huán)的時鐘發(fā)生器。高達40個可單獨編程或復(fù)用的通用輸入/輸出引腳

(GPIO)。5個外部中斷(兩個驅(qū)動保護、復(fù)位和兩個可屏蔽中斷)。6.PCI與DSP通信電路PC通過PCI總線與DSP的通信電路如圖8-11所示。這種應(yīng)用接口可被應(yīng)用于通信、多媒體、數(shù)控系統(tǒng)等設(shè)備。

由于DSP與PC之間需要高速地傳送大量的數(shù)據(jù),為了提高兩者之間的通信速度,在PCI

9052與DSP之間加入了雙口RAM。雙口RAM作為一種特殊的RAM芯片,在高速數(shù)據(jù)采集處理系統(tǒng)中得到了廣泛應(yīng)用。它具有兩個獨立的端口,兩端口各自均有一套獨立的數(shù)據(jù)總線、地址總線和控制總線,允許兩個端口獨立地對存儲器中的任何單元進行存取操作。當(dāng)兩個端口同時對存儲器中的同一單元進行存取操作時,可由其內(nèi)部仲裁邏輯決定優(yōu)先權(quán)。圖8-11PCI總線與DSP的通信電路雙口RAM芯片的型號為美國IDT公司生產(chǎn)的IDT7132,它是2

K×8高速靜態(tài)雙口RAM,存取速度為35

ns,在數(shù)字信號處理領(lǐng)域應(yīng)用比較普遍。它的時序與DSP的時序相配合,特別適用于DSP與PC之間的大量數(shù)據(jù)高速雙向傳送。該芯片提供兩個帶有自身的控制、地址和I/O引腳的獨立端口。IDT7132帶有片內(nèi)硬件端口仲裁電路,可以允許雙機同步地讀或?qū)懘鎯ζ髦械娜魏螁卧?,同時保證數(shù)據(jù)的完整性。它的競爭原則是:左右兩端口的地址信號同時到達,首先處理

CE片選信號先到的一端,慢的一方BUSY線下拉,直到快的

一方訪問完畢;左右兩端口的片選信號同時到達,首先處理訪問地址信號先到的一端,慢的一方BUSY線下拉,直到快

的一方訪問完畢。采用雙口RAM作為TMS320LF2407與PC主機之間的通信

接口不但可以簡化通信接口電路的設(shè)計,而且提高了數(shù)據(jù)交換的速度,增強了控制的實時性。由于只用到了雙口RAM

的16個地址,DSP的地址線A4~A10與IS信號進入CPLD進行譯碼對雙口RAM片選。LRDYi信號和兩側(cè)的BUSY信號也進入雙口CPLD進行相應(yīng)的邏輯判斷。由于雙口RAM的數(shù)據(jù)信號電平為5

V,因此在與3.3

V的DSP之間進行數(shù)據(jù)傳輸時需要74LVTH245進行電平轉(zhuǎn)換。8.2.2 USB總線與DSP通信接口電路設(shè)計1.USB接口芯片選擇按芯片的構(gòu)架來劃分,市面上的USB控制器芯片可以分為不需要外接微處理器的和需要外接微處理器的兩類芯片。內(nèi)嵌通用微控制器的USB控制芯片,一般是在通用微控制器的基礎(chǔ)上擴展了USB功能,其優(yōu)點是開發(fā)者熟悉這些通用微控制器的結(jié)構(gòu)和指令集,相關(guān)資料豐富,易于開發(fā),如Cypress基于8051的EZ-USB系列、Microchip基于PIC的16C7x5、Motorola基于68HC08系列的68HC08JB8、Atmel基于AVR的AT76C711等USB控制芯片。對于是需要外接微控制器的芯片,只處理與USB相關(guān)的通信工作,而且必須由外部微控制器對其控制才能正常工作,這些芯片必須提供一個串行或并行的數(shù)據(jù)總線與微控制器進行連接。其優(yōu)點是芯片價格便宜,而且便于用戶使用自己熟悉的微控制器進行開發(fā),如Philiphs公司的PDIUSBD12和ISP-1581。按傳輸速度高低,USB控制器芯片可分為支持USB1.1協(xié)議的低速系列、全速系列和支持USB

2.0協(xié)議的高速系列。PDIUSBD12屬于前者,而ISP-1581屬于后者。由于用高性能的DSP處理器作為核心,對數(shù)據(jù)傳輸?shù)膶?/p>

時性和傳輸速度有較高的要求,因此選用Philiphs公司的ISP-1581接口芯片。2.ISP-1581的特性ISP-1581是Philiphs公司在原有PDIUSBD12芯片的基礎(chǔ)上開發(fā)的一款高速USB接口芯片。運動控制器主要涉及的ISP-1581芯片的特性如下:高性能的USB接口器件,集成了串行接口引擎(SIE)、

PIE、FIFO存儲器、數(shù)據(jù)收發(fā)器和3.3

V的電壓調(diào)整器。支持USB

2.0的自檢工作模式和USB

1.1的返回工作模式。7個IN端點、7個OUT端點和1個固定的控制IN/OUT端點。集成8

KB的多結(jié)構(gòu)FIFO存儲器。端點的雙緩沖配置增加了數(shù)據(jù)吞吐量并可輕松實現(xiàn)實時數(shù)據(jù)傳輸。同大部分的微控制器/微處理器有單獨的總線接口。集成了PLL的12

MHz晶體振蕩器,有良好的EMI特性。集成了5

V到3

V的內(nèi)置電壓調(diào)整器??赏ㄟ^軟件控制與USB總線連接(Softconnect)。符合ACPI、OnNOW和USB電源管理的要求??赏ㄟ^內(nèi)部上電復(fù)位和低電壓復(fù)位電路復(fù)位,也可通過軟件復(fù)位。3.ISP-1581的工作原理1)ISP-1581的引腳介紹ISP-1581芯片的64個引腳按照功能分為電源供給引腳、擴展總線引腳、系統(tǒng)相關(guān)引腳、系統(tǒng)時鐘引腳、外擴總線控制信號和外中斷輸入引腳等6類。圖8-12給出了ISP-1581芯片的部分引腳。圖8-12ISP-1581部分引腳圖(1)電源供給引腳:ISP-1581電源共占用13個引腳。其中:

VCC(5.0

V)為外部供電;VCCA及VCC(3.3

V)為內(nèi)部供電,不能用來驅(qū)動外部器件;DGND為數(shù)字地;AGND為模擬地。在所有的供電引腳上增加一個去耦電容(0.1

μF),同時并聯(lián)一個0.01

μF的電容以得到良好的EMI性能。(2)擴展總線引腳:AD0~AD7在通用處理器模式下用作地址總線,在斷開總線模式下用作復(fù)用地址/數(shù)據(jù)總線,微控制器利用它來控制ISP-1581。DATA0~DATA15在通用處理器模式下用作DMA總線和系統(tǒng)總線,通過它來控制ISP-1581。但是,在斷開總線模式下DATA0~DATA15僅用作DMA總線。系統(tǒng)相關(guān)引腳:這些是與系統(tǒng)配置和調(diào)試相關(guān)的其他引腳,包括系統(tǒng)復(fù)位引腳RESET和系統(tǒng)出廠時測試引腳

TEST。系統(tǒng)時鐘引腳:晶體振蕩器輸入XTAL1,連接一個基本的并聯(lián)振蕩電路或一個外部時鐘源(此時XTAL2懸空);晶體振蕩器輸出XTAL2,連接一個基本的并聯(lián)振蕩電路,當(dāng)

XTAL1連接一個外部時鐘源時,該引腳懸空。2)ISP-1581的相關(guān)寄存器ISP-1581擁有地址寄存器、方式寄存器、中斷配置寄存器等諸多寄存器,對這些寄存器的理解與操作對于軟件開發(fā)中建立USB與DSP的通信具有重要的意義。下面對其中一些比較重要的寄存器進行簡要介紹。(1)地址寄存器:該寄存器用來設(shè)置USB的分配地址并激活USB設(shè)備。它的各位分配如表8-1所示。只要出現(xiàn)總線復(fù)位、上電復(fù)位和軟件復(fù)位三者之一,DEVEN和DEVADDR清零。為響應(yīng)標(biāo)準(zhǔn)USB的SET_ADDRESS請求,固件必須先將設(shè)備地址寫入地址寄存器,再發(fā)送一個空包給主機。當(dāng)主機識別空包后,這個新設(shè)備被激活。(2)方式寄存器:該寄存器是一個單字節(jié)的寄存器。其位分配見表8-2。在16位總線模式下對其進行訪問時忽略高字節(jié)。方式寄存器控制著重新開始、掛起和喚醒行為、中斷活動、軟件復(fù)位、時鐘信號和軟件連接操作。(3)中斷配置寄存器:該寄存器是單字節(jié)寄存器,它決定了INT輸出的動作和極性。其位分配見表8-3。當(dāng)USB的SIE接收或產(chǎn)生一個ACK、NAK或STALL時,就根據(jù)以下三種位

域調(diào)試方式來產(chǎn)生中斷:CDBGMOD:控制端點0中斷。DDBGMODIN:端點1到7的DATA

IN中斷。DDBGMODOUT:端點1到7的DATA

OUT中斷。用戶分別對CDBGMOD、DDBGMODIN和DDBGMODOUT的調(diào)試方式進行設(shè)置,操作時ISP-1581將向外部微處理器發(fā)送一個中斷請求。寄存器的INTPOL位控制INT輸出的信號極性(高/低電平有效,上升沿/下降沿)。若選擇電平觸發(fā)方式,INTLVL必須為0。若INTLVL設(shè)置為1,將產(chǎn)生一個60

ns的脈沖(邊沿觸發(fā))觸發(fā)產(chǎn)生中斷。(4)中斷使能寄存器:該寄存器用來激活/禁止單個中斷源。寄存器中的IEPnRX或IEPnTX位可以屏蔽所有的中斷。

當(dāng)USB的SIE在USB總線上接收或產(chǎn)生一個ACK或NAK時,就產(chǎn)生一次中斷。中斷的產(chǎn)生還依賴于位域CDBGMOD、DDBGMODIN和DDBGMODOUT調(diào)試方式的設(shè)置。所有數(shù)據(jù)的IN處理通過位DDBGMODIN控制的發(fā)送緩沖區(qū)(IX)來實現(xiàn);所有數(shù)據(jù)的OUT處理則通過位DDBGMODOUT控制的接收緩沖區(qū)來實現(xiàn)。而位CDBGMOD用于控制端點0的傳輸(IN、OUT和SETUP)。由USB總線上的事件(SOF、假SOF、掛起、重新開始、總線復(fù)位、Setup和高速狀態(tài))所產(chǎn)生的中斷也能被分別控制。除位IEBRST(總線復(fù)位)控制的中斷之外,總線復(fù)位信號可以將所有激活的中斷禁止??偩€復(fù)位時,IEBRST的值不變。中斷使能寄存器包含4個字節(jié)。(5)端點索引寄存器:該寄存器是一個字節(jié)的寄存器,它為微控制器對寄存器的訪問提供了目標(biāo)端點。其位分配如表8-4所示。索引寄存器包括:端點MaxPacketsize、端點類型、緩沖區(qū)長度、數(shù)據(jù)端口、短包、控制功能。例如,向端點索引寄存器引入02H,即可通過數(shù)據(jù)端口寄存器對端點1的OUT數(shù)據(jù)緩沖區(qū)進行訪問。(6)端點類型寄存器:該寄存器用于設(shè)置索引端點的端點類型——同步、批量或中斷。它還可以使能端點和設(shè)置雙緩沖區(qū),并可通過位NOEMPKT使一個長度為0的TX緩沖器空包自動禁止。該寄存器包含2個字節(jié),其位分配如表8-5所示。4.USB總線與DSP通信電路設(shè)計圖8-13USB總線與DSP的通信電路示意圖8.3

Windows驅(qū)動程序設(shè)計設(shè)備驅(qū)動程序是連接計算機應(yīng)用程序、硬件以及操作系統(tǒng)的橋梁,是硬件設(shè)備連接到計算機系統(tǒng)的軟件接口。在Windows環(huán)境下開發(fā)應(yīng)用系統(tǒng)經(jīng)常遇到對特定功能的硬件

設(shè)備進行訪問和控制的問題。Windows系統(tǒng)的CPU提供4種特權(quán)等級,通常稱為Ring0、Ring1、Ring2、Ring3,其中Ring3特權(quán)級別最低,Ring0特權(quán)級別最高。操作系統(tǒng)和設(shè)備驅(qū)動程序運行在Ring0級別上,可以執(zhí)行任何有效的CPU指令;普通應(yīng)用程序(包DLL)運行在Ring3級別上,硬件I/O指令不能被執(zhí)行,所以必須開發(fā)設(shè)備驅(qū)動程序,以使應(yīng)用程序有效地控制計算機硬件設(shè)備。驅(qū)動程序概述驅(qū)動程序主要有兩個作用:為應(yīng)用程序提供一個軟件接口,使其能夠?qū)υO(shè)備進行打開、關(guān)閉、讀寫等操作。實現(xiàn)與硬件之間的數(shù)據(jù)交換。1.WDM驅(qū)動程序?qū)哟蜽DM(Win32

Driver

Model),即Win32驅(qū)動程序模型,支持即插即用(PnP)和電源管理,支持USB、IEEE

1394、ACPI等硬件標(biāo)準(zhǔn)。WDM體系結(jié)構(gòu)實行分層處理,即設(shè)備驅(qū)動被分成若干層,如高層驅(qū)動程序、中間層驅(qū)動程序、底層驅(qū)動程序。每層驅(qū)動再把I/O請求劃分成更簡單的請求,以傳給更下層的驅(qū)動執(zhí)行。最底層的驅(qū)動程序在收到I/O請求后,通過硬件抽象層與硬件發(fā)生作用,從而完成I/O請求工作。如圖8-14所示,WDM模型是建立在物理設(shè)備對象(Physical

Device

Object,PDO)和功能設(shè)備對象(FunctionalDevice

Object,F(xiàn)DO)的結(jié)構(gòu)化分層基礎(chǔ)上的。WDM模型為了適應(yīng)即插即用系統(tǒng),重新定義了驅(qū)動程序分層,它至少存在總線驅(qū)動程序和功能驅(qū)動程序,根據(jù)需要還可選擇過濾器驅(qū)動程序。一個硬件只允許有一個PDO,但卻可以擁有多個FDO,在驅(qū)動程序中不是直接操作硬件而是操作相應(yīng)的PDO與FDO。在Ring3與Ring0通信方面,操作系統(tǒng)將每一個用戶請求打包成一個IRP(I/O

Request

Packet)結(jié)構(gòu),將其發(fā)送至驅(qū)動程序,并通過識別IRP中的PDO來識別是發(fā)送給哪一個設(shè)備的。另外,在驅(qū)動程序的加載方面,WDM是依靠一個128位的GUID(全球唯一標(biāo)識)來識別驅(qū)動程序的。圖8-14WDM驅(qū)動程序的模型2.驅(qū)動程序開發(fā)工具常用的WDM驅(qū)動程序開發(fā)工具有WinDriver、DriverWorks和DDK等。WinDriver是Jungo公司推出的驅(qū)動程序開發(fā)工具,適合于開發(fā)純硬件驅(qū)動,能自動探測插在機器上的硬件參數(shù)。WinDriver在Windows系統(tǒng)下開發(fā)的驅(qū)動程序不需要做任何修改,就可以用于Windows

9x、Windows

NT、Windows

2000等系統(tǒng)。其優(yōu)點是開發(fā)周期短;缺點是只能開發(fā)硬件相關(guān)的驅(qū)動程序,開發(fā)的驅(qū)動程序效率不高。DriverWorks是Numage公司出品的DriverStudio套件中的一個開發(fā)工具,主要用來開發(fā)Windows

NT和Windows

2000系統(tǒng)驅(qū)動程序。DriverWroks用于開發(fā)KMD和WDM驅(qū)動程序,并且對DDK函數(shù)進行了類的封裝,從而為開發(fā)Windows

9x、Windows

NT和Windows

2000

WDM設(shè)備驅(qū)動程序提供了一個自動化的方法。DDK(Driver

Development

Kit)是Microsoft提供的驅(qū)動程序開發(fā)工具。利用DDK開發(fā)驅(qū)動程序需要對整個體系結(jié)構(gòu)有很好的理解,這種方法開發(fā)驅(qū)動程序的難度和工作量較大,但更加靈活并且驅(qū)動程序的效率更高。一般來說,驅(qū)動程序的開發(fā)可以采用如下方式:用

WinDriver開發(fā)驅(qū)動程序的原型,用DriverWorks開發(fā)最終發(fā)行的驅(qū)動程序。如果驅(qū)動程序很復(fù)雜,則直接使用DDK開發(fā)。上述開發(fā)方式都需要VC++作為輔助開發(fā)環(huán)境。前兩種方式

都需要DDK。在開發(fā)時間上,第一種方式最短,第三種方式最長,第二種方式可以認為是第一種和第三種方案的折衷。下面簡要介紹利用DDK開發(fā)驅(qū)動程序的過程。3.驅(qū)動程序設(shè)計步驟在WDM驅(qū)動程序設(shè)計中首先寫一個DriverEntry過程,這是每個設(shè)備驅(qū)動程序的入口,該程序啟動時被系統(tǒng)自動調(diào)用。在DriverEntry中完成驅(qū)動程序的初始化工作。在一個WDM驅(qū)動程序中,初始化是唯一必不可少的。要使一個驅(qū)動程序能夠?qū)崿F(xiàn)對硬件設(shè)備的驅(qū)動,還應(yīng)該有一些其他的回調(diào)例程和分發(fā)例程來處理各種IRP,如:DriverUnloadAddDeviceStartIoMajorFunction[IRP_MJ_PnP]MajorFunction[IRP_MJ_CREATE]MajorFunction[IRP_MJ_CLOSE]MajorFunction[IRP_MJ_READ]MajorFunction[IRP_MJ_WRITE]MajorFunction[IRP_MJ_DEVICE_CONTROL]MajorFunction[IRP_MJ_POWER]MajorFunction[IRP_MJ_SYSTEM_CONTROL]在初始化過程中,所要做的工作就是設(shè)置各回調(diào)例程的入口指針,使這些回調(diào)例程能夠響應(yīng)相應(yīng)的IRP。這些回調(diào)例程中包括以下幾種比較常用的例程:DriverUnload:系統(tǒng)在卸載設(shè)備時調(diào)用DriverUnload。DriverUnload例程負責(zé)在驅(qū)動程序被停止前做一些必要的處理,如釋放資源、記錄最終狀態(tài)等。AddDevice:系統(tǒng)在發(fā)現(xiàn)新的硬件設(shè)備時調(diào)用

AddDevice。AddDevice例程主要完成創(chuàng)建設(shè)備對象;注冊一個或多個設(shè)備接口,以便應(yīng)用程序能夠發(fā)現(xiàn)設(shè)備的存在,把新設(shè)備對象放到設(shè)備棧上。StartIo:驅(qū)動程序的分發(fā)例程必須是可重入的,通常采用的方法是使用I/O管理器的服務(wù)創(chuàng)建一個IRP設(shè)備隊列,分發(fā)例程把IRP放在設(shè)備隊列中,由I/O管理器調(diào)用StartI,一次處理一個IRP。在StartIo中,一般是處理具體的輸入/輸出請求。當(dāng)StartIo例程完成一個IRP時,它應(yīng)調(diào)用內(nèi)核,保證

對下一個可用的IRP可再次調(diào)用。MajorFunction[IRP_MJ_PnP]:當(dāng)發(fā)生設(shè)備到達、硬件配置文件改變、設(shè)備被刪除等情況時,PnP管理器發(fā)出PnP

IRP,調(diào)用MajorFunction[IRP_MJ_PnP]例程,

MajorFunction[IRP_MJ_PnP]例程對這些PnP

IRP進行處理。對于驅(qū)動程序分配的資源,如I/O端口、存儲器地址、中斷和DMA端口等,WDM驅(qū)動程序是在收到“啟動設(shè)備”PnPIRP時被告知這些設(shè)備資源的。MajorFunction[IRP_MJ_CREATE]和

MajorFunction[IRP_MJ_CLOSE]:這兩個例程在用戶調(diào)用

CreateFile和CloseHandle時被調(diào)用,為即將到來的讀寫操作做準(zhǔn)備或做一些讀寫完成后的必要處理。MajorFunction[IRP_MJ_READ]和

MajorFunction[IRP_MJ_WRITE]:當(dāng)用戶調(diào)用ReadFile從設(shè)備讀取數(shù)據(jù)或WriteFile向設(shè)備寫數(shù)據(jù)時,系統(tǒng)發(fā)出

[IRP_MJ_READ]或[IRP_MJ_WRITE]IRP調(diào)用這兩個例程之一。在這兩個例程中,或者將IRP掛接在相應(yīng)的IRP隊列上供

StartIo處理,或者將這些IRP變成對硬件實際的輸入/輸出直接訪問I/O端口、存儲器地址、啟動中斷、DMA等操作。MajorFunction[IRP_MJ_DEVICE_CONTROL]:對設(shè)備進行一些自定義的操作,如更改設(shè)置等,在用戶調(diào)用

DeviceIoControl時被調(diào)用。該例程通過IRP獲得用戶的請求號,以及一個指向用戶緩沖區(qū)的指針與用戶程序進行通信,完成一些特定的I/O操作,如設(shè)備的設(shè)置等。MajorFunction[IRP_MJ_POWER]:電源管理IRP,可以對設(shè)備進行電源管理。如果不需要對設(shè)備進行電源管理,只需把“電源管理”IRP簡單地傳遞給設(shè)備棧中下一層驅(qū)動程序即可。MajorFunction[IRP_MJ_SYSTEM_CONTROL]:驅(qū)動程序通過處理“系統(tǒng)控制”IRP來支持WMI(Windows管理診斷擴展)生成系統(tǒng)診斷和性能信息。與電源管理一樣,可以簡單地把這個IRP沿設(shè)備棧向下傳遞。此外,還有以下幾個回調(diào)例程:ISR:中斷服務(wù)例程,當(dāng)與設(shè)備連接的中斷產(chǎn)生時,調(diào)用此例程。DpcForIsr:由于中斷處理過程運行于較高的優(yōu)先級上,它們能屏蔽許多級別低于或等于它們的過程的執(zhí)行,如果它們占用CPU時間過長,很容易使系統(tǒng)性能下降,因此,中斷服務(wù)例程應(yīng)盡可能快地執(zhí)行完。然而有的中斷服務(wù)例程需要完成很多任務(wù),因而為不影響系統(tǒng)性能,除最緊迫的任務(wù)外,其他的部分放在一個被稱為延遲過程調(diào)用(DPC)的例程中來完成。PCI設(shè)備的驅(qū)動程序設(shè)計中應(yīng)注意以下一些問題:對于PCI設(shè)備來說,PCI設(shè)備通常會占用一些硬件資源,如I/O端口、存儲器地址、中斷和DMA等。當(dāng)驅(qū)動程序收到“啟動設(shè)備”PnP

IRP時,告知這些設(shè)備資源。驅(qū)動程序必須在處理“啟動設(shè)備”PnP

IRP時獲得這些資源,供以后使用。一旦有了I/O端口或內(nèi)存的地址,讀寫硬件寄存器等工作就變得非常直接,對硬件寄存器的讀寫就像訪問普通內(nèi)存一樣容易。需要注意的是,對硬件寄存器的訪問,占用處理器的時間不要超過50

μs。另外,必須使用某種機制保證驅(qū)動程序的不同部分不同時地訪問相同的硬件。在一個多處理器系統(tǒng)中,“寫”IRP處理程序可以同時在兩個不同的處理器上運行。如果它們兩個都試圖訪問相同的硬件,則會出現(xiàn)不可預(yù)知的結(jié)果,即使是在單處理器系統(tǒng)中,也存在兩個不同進程同時訪問相同硬件的可能。有兩個不同的機制可以排除這些沖突。第一個機制是臨界段例程,使用這些臨界段例程可以保證代碼不會被中斷處理程序中斷。第二個機制是使用StartIo例程串行處理

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論