單片機與以太網控制器RTL8029接口的VHDL設計

在圖2中,可以完成對PCI設備的配置訪問與I/O讀寫訪問,只要有這兩種訪問就完全可以實現單片機對RTL8029的操作。IDSEL信號只是在配置訪問中才起作月,在I/O訪問中不使用該信號。
FRAME有效后的第一個時鐘前沿是地址期的開始。此時在AD總線上傳送地址,在C/BE總線上傳送命令。IRDY有效后即為數據期,此時在AD總線上傳送數據,在C/BE總線上傳送字節使能。但數據的傳輸是在IRDY和TRDY同時有效的時鐘前沿進行。字節使能指明此時32位數據線上的數據中哪一個數據字節是有效的。
讀配置的過程:首先送地址,送命令(命令值為1010B)和字節使能,再讀配置空間中的內容。
寫配置的過程:首先送地址,送命令(命令值為101lB)和字節使能,再送配置數據。
讀I/O的過程:首先送地址,送命令(命令值為0010B)和字節使能,再讀I/O空間中的內容。
寫I/O的過程:首先送地址,送命令(命令值為001lB)和字節使能,再送數據。
在I/O訪問中,AD[1:O]兩位有特殊要求,需要與C/BE[3:0]相配合。
FRAME有效后的第一個時鐘前沿是地址期的開始。此時在AD總線上傳送地址,在C/BE總線上傳送命令。IRDY有效后即為數據期,此時在AD總線上傳送數據,在C/BE總線上傳送字節使能。但數據的傳輸是在IRDY和TRDY同時有效的時鐘前沿進行。字節使能指明此時32位數據線上的數據中哪一個數據字節是有效的。
讀配置的過程:首先送地址,送命令(命令值為1010B)和字節使能,再讀配置空間中的內容。
寫配置的過程:首先送地址,送命令(命令值為101lB)和字節使能,再送配置數據。
讀I/O的過程:首先送地址,送命令(命令值為0010B)和字節使能,再讀I/O空間中的內容。
寫I/O的過程:首先送地址,送命令(命令值為001lB)和字節使能,再送數據。
在I/O訪問中,AD[1:O]兩位有特殊要求,需要與C/BE[3:0]相配合。
當C/BEO有效時,AD[1:O]必須為00,當C/BE3有效時,AD[1:0]必須為11。在具體訪問中,每當一個設備地址譯碼選中后,便要檢查字節使能信號是否與AD[1:0]相符。如果二者矛盾,則整個訪問將無法完成。因此,寫單片機軟件需要參考PCI總線協議中關于這一部分的內容,才能正確操作以太網控制器。
總線命令/字節使能(C/BE)寄存器的地址有效后的一個時鐘周期內,FRAME信號應該有效,表示地址期開始,C/BE[3:0]總線上為總線命令,地址期可以只持續一個周期,然后立即進入數據期。在單片機系統中可以不考慮去支持復雜的PCI數據連發,進入數據期后,FRAME信號應立即拉回高電平,此時C/BE[3:0]總線上為字節使能。因此FRAME信號可以用總線命令/字節使能寄存器的地址信號來產生。
IRDY信號在數據期才有效,因此IRDY也可以由總線命令/字節使能寄存器的地址信號來產生或由FRAME信號來產生。
IDSEL信號只與配置訪問有關,因此可以通過總線命令的命令字來產生。在I/O訪問時。命令字的最高位bit3為O;在配置訪問時。命令字的最高位bit3為l。因此,可以用該位來產生IDSEL信號。
主站蜘蛛池模板:
屯门区|
方山县|
西畴县|
井研县|
东丰县|
株洲县|
叙永县|
澄江县|
铅山县|
铁岭市|
泌阳县|
库车县|
丰原市|
北川|
夹江县|
临邑县|
安达市|
望城县|
颍上县|
华池县|
阳山县|
成安县|
井冈山市|
巴彦淖尔市|
元氏县|
阿巴嘎旗|
东安县|
申扎县|
普兰县|
娱乐|
宣化县|
阿巴嘎旗|
南城县|
合肥市|
松滋市|
广饶县|
辉南县|
禄丰县|
紫金县|
广灵县|
贡嘎县|
總線命令/字節使能(C/BE)寄存器的地址有效后的一個時鐘周期內,FRAME信號應該有效,表示地址期開始,C/BE[3:0]總線上為總線命令,地址期可以只持續一個周期,然后立即進入數據期。在單片機系統中可以不考慮去支持復雜的PCI數據連發,進入數據期后,FRAME信號應立即拉回高電平,此時C/BE[3:0]總線上為字節使能。因此FRAME信號可以用總線命令/字節使能寄存器的地址信號來產生。
IRDY信號在數據期才有效,因此IRDY也可以由總線命令/字節使能寄存器的地址信號來產生或由FRAME信號來產生。
IDSEL信號只與配置訪問有關,因此可以通過總線命令的命令字來產生。在I/O訪問時。命令字的最高位bit3為O;在配置訪問時。命令字的最高位bit3為l。因此,可以用該位來產生IDSEL信號。
評論