資源描述:
《機(jī)間通信研究論文.doc》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在應(yīng)用文檔-天天文庫(kù)。
1、機(jī)間通信研究論文摘要:介紹一種快速的并行協(xié)議——ECP協(xié)議在高速單片機(jī)與PC機(jī)間通信的應(yīng)用。高速單片機(jī)采用SX52BD,并用虛擬外設(shè)實(shí)現(xiàn)。關(guān)鍵詞:ECP協(xié)議互鎖握手虛擬外設(shè)引言擴(kuò)展能力端口模式ECP(ExtentedCapabilityPort)是一種IEEE1284標(biāo)準(zhǔn)的工作模式之一。它能實(shí)現(xiàn)雙向數(shù)據(jù)傳輸,具有DMA傳輸、數(shù)據(jù)RLE壓縮、雙向?qū)ぶ返裙δ堋K笾鳈C(jī)外設(shè)雙方的硬件都必須實(shí)現(xiàn)狀態(tài)機(jī)的功能,即自動(dòng)產(chǎn)生各種控制信號(hào)。ECP模式是唯一定義了寄存器實(shí)現(xiàn)的IEEE1284傳輸協(xié)議。在計(jì)算機(jī)端操作ECP并行協(xié)議,僅需對(duì)相應(yīng)的寄存器進(jìn)行讀寫(xiě)就會(huì)觸發(fā)硬件完
2、成各種時(shí)序。ECP模式的數(shù)據(jù)傳輸率可以達(dá)到2~4MB/s。SX52BD是SX系列產(chǎn)品,是采用CMOS工藝制造的、可配置的通信控制器。它是一種高速單片機(jī),指令大都是單周期的,其工作頻率可達(dá)到50MHz。由于其特有速度,設(shè)備可實(shí)現(xiàn)虛擬外設(shè)(軟件代替硬件的功能)。本文講述的通信就是基于此完成的。1ECP協(xié)議ECP傳輸通過(guò)標(biāo)準(zhǔn)并行端口實(shí)現(xiàn)。其DB25接口的引腳定義如下:1—HostClk;2~9—雙向D1~D8;10—PeriphClk;11—PeriphAck;12—nAckReverse;13—Xflag;14—HostAck;15—nPeriphReque
3、st;16—nReverseRequest;17—IEEE1284Active;18~25—各信號(hào)地。ECP模式分以下8個(gè)操作階段。①3模式商議階段。主機(jī)把ECP的能力請(qǐng)求值放到數(shù)據(jù)總線上,然后置IEEE1284Active為高,HostAck為低。外設(shè)應(yīng)該置PeriphClk為低,nPeriphRequest為高,Xflag為高,nAckReverse為高。主機(jī)置HostClk為低,然后置HostClk和HostAck為高,表示已經(jīng)確認(rèn)了一個(gè)兼容于ECP模式的外設(shè)。接著,外設(shè)置nAckReverse為低,PeriphAck為低,Xflag為高,Peri
4、phClk為高。接口進(jìn)入設(shè)置階段。②ECP設(shè)置階段。主機(jī)置HostAck為低,外設(shè)置nAckReverse為高,響應(yīng)主機(jī)。接口進(jìn)入正向空閑階段,可以開(kāi)始傳輸數(shù)據(jù)。③正向空閑階段。外設(shè)置PeriphAck為低,主機(jī)檢測(cè)到此信號(hào)可開(kāi)始傳輸數(shù)據(jù)。④ECP正向傳輸階段。主機(jī)將數(shù)據(jù)放到數(shù)據(jù)總線上,置HostClk為低。外設(shè)置PeriphAck為高,應(yīng)答。主機(jī)置HostClk為高,外設(shè)接收數(shù)據(jù)并置PeriphAck為低,完成這次傳輸。這種握手方式即互鎖握手(interlockedhandshake)?;ユi握手是指每一個(gè)控制信號(hào)的跳變都由接口對(duì)方相互應(yīng)答。使用這種方式
5、,外設(shè)可以控制傳輸?shù)臅r(shí)間以滿足它進(jìn)行操作的需要。⑤ECP正向到反向轉(zhuǎn)換階段。在正向空閑階段,主機(jī)置8位數(shù)據(jù)總線為高阻狀態(tài),并設(shè)置HostAck為低。為等待最小建立時(shí)間后,置nReverseRequest為低。外設(shè)置nAckReverse為低應(yīng)答,進(jìn)入反應(yīng)空閑階段??瓷先ハ喈?dāng)復(fù)雜,但PC端操作卻很簡(jiǎn)單,僅需對(duì)后面介紹的寄存器讀寫(xiě)即可。單片機(jī)端略微復(fù)雜,但也只需對(duì)I/O口置位、復(fù)位、讀取,編程并不難。2SX52BD單片機(jī)簡(jiǎn)介SX52BD片內(nèi)程序存儲(chǔ)器容量為4096字節(jié),數(shù)據(jù)存儲(chǔ)器容量為262×8位。SX52BD具有5個(gè)8位I/O端口A、B、C、D、E,2個(gè)帶
6、8位預(yù)定標(biāo)器的16位定時(shí)器,1個(gè)帶預(yù)定標(biāo)器通用8位定時(shí)器,1個(gè)模擬比較器,1個(gè)brownout檢測(cè)器及看門(mén)狗定時(shí)器,1個(gè)內(nèi)部RC振蕩器。端口A、B、C為雙向I/O口;端口B可作為喚配置、比較器、定時(shí)器1的輸入;端口C可作為定時(shí)器2的輸入;端口D、E僅做輸入用。SX52BD有3種不同的尋址方式:間接尋址、直接尋址、半直接尋址。對(duì)寄存器尋址模式的選取依賴于指令中5位“fr”的值。*間接模式:fr=00h*直接模式:(frbit4=0)fr=01h~0Fh3*半直接模式:(frbit4=1)fr=10h~1Fh由于SX52BD運(yùn)行速度可達(dá)50MHz,由指令運(yùn)行
7、產(chǎn)生時(shí)序完全可達(dá)到ECP協(xié)議的時(shí)序時(shí)間要求,并且它的I/O口驅(qū)動(dòng)能力滿足PC機(jī)要求。因此,不用使用任何額外的硬件電路產(chǎn)生時(shí)序,這就是虛擬外設(shè)的概念。3ECP通信在SX52BD與PC機(jī)間的實(shí)現(xiàn)由于采用了虛擬外設(shè),因此硬件電路結(jié)構(gòu)極其簡(jiǎn)單:將SX52BD單片機(jī)的25個(gè)雙向I/O口接入PC機(jī)即可。ECP通信的實(shí)現(xiàn)由軟件完成。主機(jī)設(shè)置好BIOS后,可通過(guò)操作寄存器直接產(chǎn)生硬件所需時(shí)序。寄存器定義如表1。表1寄存器定義(基址0x378)名稱地址偏移讀寫(xiě)大小功能ecpAFifo0x000W-R/W大小地址寄存器dsr0x001R字節(jié)狀態(tài)寄存器dcr0x002R/W字
8、節(jié)控制寄存器ecpDFifo0x400R/W雙字節(jié)數(shù)據(jù)寄存器ecr0x402R/