ECP協(xié)議及在SX52BD與PC機(jī)間通信的實(shí)現(xiàn)
發(fā)布時(shí)間:2008/5/27 0:00:00 訪問(wèn)次數(shù):629
sx52bd是sx系列產(chǎn)品,是采用cmos工藝制造的、可配置的通信控制器。它是一種高速單片機(jī),指令大都是單周期的,其工作頻率可達(dá)到50mhz。由于其特有速度,設(shè)備可實(shí)現(xiàn)虛擬外設(shè)(軟件代替硬件的功能)。本文講述的通信就是基于此完成的。
1 ecp協(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—nperiphrequest;
16—nreverserequest; 17—ieee1284active;
18~25—各信號(hào)地。
ecp模式分以下8個(gè)操作階段。
①模式商議階段。主機(jī)把ecp的能力請(qǐng)求值放到數(shù)據(jù)總線上,然后置ieee 1284 active為高,hostack為低。外設(shè)應(yīng)該置periphclk為低,nperiphrequest為高,xflag為高,nackreverse為高。主機(jī)置hostclk為低,然后置hostclk和hostack為高,表示已經(jīng)確認(rèn)了一個(gè)兼容于ecp模式的外設(shè)。接著,外設(shè)置nackreverse為低,periphack為低,xflag為高,periphclk為高。接口進(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為低,完成這次傳輸。
這種握手方式即互鎖握手(interlocked handshake);ユi握手是指每一個(gè)控制信號(hào)的跳變都由接口對(duì)方相互應(yīng)答。使用這種方式,外設(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ù)位、讀取,編程并不難。
2 sx52bd單片機(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è)帶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
*直接模式:(fr bit 4=0)fr=01h~0fh
*半直接模式:(fr bit 4=1)fr=10h~1fh
由于sx52bd運(yùn)行速度可達(dá)50mhz,由指令運(yùn)行產(chǎn)生時(shí)序完全可達(dá)到ecp協(xié)議的時(shí)序時(shí)間要求,并且它的i/o口驅(qū)動(dòng)能力滿足pc機(jī)要求。因此,不用使用任何額外的硬件電路產(chǎn)生時(shí)序,這就是虛擬外設(shè)的概念。
3 ecp通信在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。
名 稱(chēng)
地址偏移
讀 寫(xiě)
大 小
功 能
ecpafifo
0x000
w-r/w
大小
地址寄存器
dsr
0x001
r
字節(jié)
狀態(tài)寄存器
dcr
0x002
r/w
字節(jié)
控制寄存器
ecpdfifo
0x400
r/w
雙字節(jié)
數(shù)據(jù)寄存器
ecr
0x402
r/w
字節(jié)
擴(kuò)展控制寄存器
表1 寄存器定義(基址0x378)
名 稱(chēng) 地址偏移 讀 寫(xiě) 大 小 功
sx52bd是sx系列產(chǎn)品,是采用cmos工藝制造的、可配置的通信控制器。它是一種高速單片機(jī),指令大都是單周期的,其工作頻率可達(dá)到50mhz。由于其特有速度,設(shè)備可實(shí)現(xiàn)虛擬外設(shè)(軟件代替硬件的功能)。本文講述的通信就是基于此完成的。
1 ecp協(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—nperiphrequest;
16—nreverserequest; 17—ieee1284active;
18~25—各信號(hào)地。
ecp模式分以下8個(gè)操作階段。
①模式商議階段。主機(jī)把ecp的能力請(qǐng)求值放到數(shù)據(jù)總線上,然后置ieee 1284 active為高,hostack為低。外設(shè)應(yīng)該置periphclk為低,nperiphrequest為高,xflag為高,nackreverse為高。主機(jī)置hostclk為低,然后置hostclk和hostack為高,表示已經(jīng)確認(rèn)了一個(gè)兼容于ecp模式的外設(shè)。接著,外設(shè)置nackreverse為低,periphack為低,xflag為高,periphclk為高。接口進(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為低,完成這次傳輸。
這種握手方式即互鎖握手(interlocked handshake)。互鎖握手是指每一個(gè)控制信號(hào)的跳變都由接口對(duì)方相互應(yīng)答。使用這種方式,外設(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ù)位、讀取,編程并不難。
2 sx52bd單片機(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è)帶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
*直接模式:(fr bit 4=0)fr=01h~0fh
*半直接模式:(fr bit 4=1)fr=10h~1fh
由于sx52bd運(yùn)行速度可達(dá)50mhz,由指令運(yùn)行產(chǎn)生時(shí)序完全可達(dá)到ecp協(xié)議的時(shí)序時(shí)間要求,并且它的i/o口驅(qū)動(dòng)能力滿足pc機(jī)要求。因此,不用使用任何額外的硬件電路產(chǎn)生時(shí)序,這就是虛擬外設(shè)的概念。
3 ecp通信在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。
名 稱(chēng)
地址偏移
讀 寫(xiě)
大 小
功 能
ecpafifo
0x000
w-r/w
大小
地址寄存器
dsr
0x001
r
字節(jié)
狀態(tài)寄存器
dcr
0x002
r/w
字節(jié)
控制寄存器
ecpdfifo
0x400
r/w
雙字節(jié)
數(shù)據(jù)寄存器
ecr
0x402
r/w
字節(jié)
擴(kuò)展控制寄存器
表1 寄存器定義(基址0x378)
名 稱(chēng) 地址偏移 讀 寫(xiě) 大 小 功
熱門(mén)點(diǎn)擊
- 單片機(jī)多字節(jié)BCD碼加法減法
- 單片機(jī)C51串口中斷接收和發(fā)送測(cè)試
- 用單片機(jī)制作通用型電視遙控器
- P89C51RD2的Boot ROM與ISP
- 單片機(jī)系統(tǒng)低功耗設(shè)計(jì)策略
- DVB-C信道解調(diào)解碼芯片GX1001的設(shè)計(jì)
- C51絕對(duì)地址訪問(wèn)
- 用MCS-51單片機(jī)串行口對(duì)MAX7219及
- 測(cè)試PIC單片機(jī)如何省電
- 指針類(lèi)型和存儲(chǔ)區(qū)的關(guān)系詳解
推薦技術(shù)資料
- CV/CC InnoSwitch3-AQ 開(kāi)
- URF1DxxM-60WR3系
- 1-6W URA24xxN-x
- 閉環(huán)磁通門(mén)信號(hào)調(diào)節(jié)芯片NSDRV401
- SK-RiSC-SOM-H27X-V1.1應(yīng)
- RISC技術(shù)8位微控制器參數(shù)設(shè)
- 多媒體協(xié)處理器SM501在嵌入式系統(tǒng)中的應(yīng)用
- 基于IEEE802.11b的EPA溫度變送器
- QUICCEngine新引擎推動(dòng)IP網(wǎng)絡(luò)革新
- SoC面世八年后的產(chǎn)業(yè)機(jī)遇
- MPC8xx系列處理器的嵌入式系統(tǒng)電源設(shè)計(jì)
- dsPIC及其在交流變頻調(diào)速中的應(yīng)用研究