ecp協議及在sx52bd與pc機間通訊的實現
引言擴充套件能力埠模式ecp(extented capability port)是一種ieee 1284標準的工作模
式之一。它能實現雙向資料傳輸,具有dma傳輸、資料rle壓縮、雙向定址等功能
。它要求主機外設雙方的硬體都必須實現狀態機的功能,即自動產生各種控制訊號
。ecp模式是唯一定義了暫存器實現的ieee 1284傳輸協議。在計算機端操作ecp並
行協議,僅需對相應的暫存器進行讀寫就會觸發硬體完成各種時序。ecp模式的數
據傳輸率可以達到2~4mb/s。
sx52bd是sx系列產品,是採用cmos工藝製造的、可配置的通訊控制器。它是一
種高速微控制器,指令大都是單週期的,其工作頻率可達到50mhz。由於其特有速
度,裝置可實現虛擬外設(軟體代替硬體的功能)。本文講述的通訊就是基於此完
成的。1 ecp協議
ecp傳輸通過標準並行埠實現。其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—各訊號地。
ecp模式分以下8個操作階段。
1模式商議階段。主機把ecp的能力請求值放到資料匯流排上,然後置ieee 1284 acti
ve為高,hostack為低。外設應該置periphclk為低,nperiphrequest為高,xflag
為高,nackreverse為高。主機置hostclk為低,然後置hostclk和hostack為高,
表示已經確認了乙個相容於ecp模式的外設。接著,外設定nackreverse為低,per
iphack為低,xflag為高,periphclk為高。介面進入設定階段。
2ecp設定階段。主機置hostack為低,外設定nackreverse為高,響應主機。介面
進入正向空閒階段,可以開始傳輸資料。
3正向空閒階段。外設定periphack為低,主機檢測到此訊號可開始傳輸資料。
4ecp正向傳輸階段。主機將資料放到資料匯流排上,置hostclk為低。外設定perip
hack為高,應答。主機置hostclk為高,外設接收資料並置periphack為低,完成
這次傳輸。
這種握手方式即互鎖握手(interlocked handshake)。互鎖握手是指每乙個控制
訊號的跳變都由介面對方相互應答。使用這種方式,外設可以控制傳輸的時間以滿
足它進行操作的需要。
5ecp正向到反向轉換階段。在正向空閒階段,主機置8位資料匯流排為高阻狀態,
並設定hostack為低。為等待最小建立時間後,置nreverserequest為低。外設定n
ackreverse為低應答,進入反應空閒階段。
看上去相當複雜,但pc端操作卻很簡單,僅需對後面介紹的暫存器讀寫即可。單
片機端略微複雜,但也只需對i/o口置位、復位、讀取,程式設計並不難。
2 sx52bd微控制器簡介
sx52bd片內程式儲存器容量為4096位元組,資料儲存器容量為262×8位。sx52bd具
有5個8位i/o埠a、b、c、d、e,2個帶8位預定標器的16位定時器,1個帶預定
標器通用8位定時器,1個模擬比較器,1個brownout檢測器及看門狗定時器,1個
內部rc振盪器。埠a、b、c為雙向i/o口;埠b可作為喚配置、比較器、定時
器1的輸入;埠c可作為定時器2的輸入;埠d、e僅做輸入用。
sx52bd有3種不同的定址方式:間接定址、直接定址、半直接定址。對暫存器定址
模式的選取依賴於指令中5位「fr」的值。
*間接模式:fr=00h
*直接模式:(fr bit 4=0)fr=01h~0fh
*半直接模式:(fr bit 4=1)fr=10h~1fh
由於sx52bd執行速度可達50mhz,由指令執行產生時序完全可達到ecp協議的時
序時間要求,並且它的i/o口驅動能力滿足pc機要求。因此,不用使用任何額外的
硬體電路產生時序,這就是虛擬外設的概念。
3 ecp通訊在sx52bd與pc機間的實現
由於採用了虛擬外設,因此硬體電路結構極其簡單:將sx52bd微控制器的25個雙向i
/o口接入pc機即可。
ecp通訊的實現由軟體完成。主機設定好bios後,可通過操作暫存器直接產生硬體
所需時序。暫存器定義如表1。
表1 暫存器定義(基址0x378)
名稱 位址偏移 讀寫 大小 功能
ecpafifo 0x000 w-r/w 大小 位址暫存器
dsr 0x001 r 位元組 狀態暫存器
dcr 0x002 r/w 位元組 控制暫存器
ecpdfifo 0x400 r/w 雙位元組 資料暫存器
ecr 0x402 r/w 位元組 擴充套件控制暫存器
其中狀態暫存器dsr位定義如圖1,控制暫存器dcr的位定義如圖2。擴充套件控制暫存器
ecr中定義了ecp對fifo、dma的使用,在速度要求較高時才對其操作。
下面列出了實現簡單的ecp協議。圖3為sx52bd端的程式流程圖,圖4為pc機端的
程式流程圖。
結語總體來說,由於ecp協議功能完善而且實現簡單,對時間要求也不是很嚴格,在許
多傳輸速率要求不是特別高的場合中應用價值很高。另外,sx系列微控制器的虛擬
外設具有很廣泛的應用。
I2S匯流排協議
音響資料的採集 處理和傳輸是多 技術的重要組成部分。眾多的數字音訊系統已經進入消費市場,例如數字音訊錄音帶 數字聲音處理器。對於裝置和生產廠家來說,標準化的資訊傳輸結構可以提高系統的適應性。i2s inter ic sound 匯流排是飛利浦公司為數字音訊裝置之間的音訊資料傳輸而制定的一種匯流排標準...
I2S匯流排協議
音響資料的採集 處理和傳輸是多 技術的重要組成部分。眾多的數字音訊系統已經進入消費市場,例如數字音訊錄音帶 數字聲音處理器。對於裝置和生產廠家來說,標準化的資訊傳輸結構可以提高系統的適應性。i2s inter ic sound 匯流排是飛利浦公司為數字音訊裝置之間的音訊資料傳輸而制定的一種匯流排標準...
MQTT協議 MQTT協議簡介及協議原理
mqtt message queuing telemetry transport,訊息佇列遙測傳輸協議 是一種基於發布 訂閱 publish subscribe 模式的 輕量級 通訊協議,該協議構建於tcp ip協議上,由ibm在1999年發布。mqtt最大優點在於,可以以極少的 和有限的頻寬,為連...