[/table]
|
|
IDE硬盤是典型的16位總線設備。IDE接口有兩個片選信號,DCS1用來尋址控制寄存器。默認狀態(tài)下即可對IDE硬盤進行存取操作,故一般把該信號線直接連到高電平而只使用DCS0。其時序如圖3所示。
|
|
![]()
|
|
|
讀/寫周期開始時DIOR和DIOW均處于無效狀態(tài),DA0-DA2連接到主機(在這里為單片機)的地址輸出。在收到讀請求(DIOR使能)后把數據送至數據線上,主機利用DIOR的上升沿鎖存該數據;之后,硬盤控制器延時后釋放數據線,在接收寫請求時(DIOW使能),則讓數據線處于三態(tài)(tri-state),等待主機輸出數據,最后在DIOW的上升沿把數據寫入硬盤控制器,在DIOW上升沿之前,主機需把數據準備好。
|
|
對比圖1和圖3可知,總線時序基本一致,只是在數據線上傳輸的數據位數不同,但是,主機一條指令完成一個讀/寫周期,從外部設備到主機的16位數據在指令完成后不再有效;而從主機到外部設備的數據必須在指令完成前準備好,因而要把8位總線擴展成16位總線,必須要同時考慮讀/寫時數據的鎖存問題。
|
|
2 16位總線擴展的實現
|
|
根據前面對總線時序的分析,采用如圖4所示的方法對8位總線進行擴展,使其滿足16位總線讀/寫。主要由以下兩部分組成:1片GAL16V8(U5),實現片選信號的譯碼和其他信號的編碼;2片74HC573(U3、U4),實現高8位數據鎖存。CS1-CS4是A9-A15的譯碼輸出,可連接4個外部設備。地址范圍根據具體設備來設定,假設CS2上連接有16位總線設備:
|
|
![]()
|
|
這里“&”表示“與”,“!”表示“非”,即RD和CS5同時有效時,LE5有效;WR和CS6同時有效時,LE6有效。注意:CS5和CS6有一部分地址空間與CS2重合,即選通CS2的同時,也同時會選通CS5或CS6。另外,通過外部設備地址線的連接,使得8000H-81FFH和8200H-83FFH尋址同一個位置,以圖2中的IDE硬盤為例,DA0->A0,DA1->A1,DA2->A2。
|
|
單片機寫16位數據時,執(zhí)行寫操作使CS6有效(尋址FE00H-FFFFH),輸出高8位數據并鎖存到U4,然后執(zhí)行寫操作使CS2有效(尋址8200H-83FFH),P0口上的數據和U4鎖存的數據同步輸出,形成16位數據D0-D15,從而寫入外部設備。
|
|
單片機讀16位數據時,執(zhí)行讀操作使CS2有效(尋址8000H-81FFH),外部設備的低8位送至P0口,而高8位同時被U3鎖存,然后執(zhí)行讀操作使CS5有效(尋址FC00H-FDFFH),U3鎖存的數據被送至P0口。
|
|
在上面的讀/寫過程中,雖然對CS2的尋址位置不同(讀為8000H-81FFH,寫為8200H-83FFH),但由于位置重合,故可對16位外部設備正確讀/寫。另外,如下單片機尋址連接到CS1、CS3、CS4上的8位設備,則由于U3和U4沒有選通,對其操作沒有任何影響。
|
|
從上面的實現可以看出,擴展后的16位外部總線與外部設備進行數據交互時只增加一條指令。本方法與常規(guī)的端口模擬方法的比較結果如表1所列。從表中可以看出,采用本方法后,傳輸速率是常規(guī)方法的3倍。
|
|
![]()
|
|
另外,上述擴展方法還可以進一步引申:1)若有未使用的I/O口(如W77E58的P1口),則可用來直接輸出高8位數據,從而可以去掉圖4中的U4;2)若對成本不太敏感,則可把圖4中的邏輯器件用CPLD實現,從而使設計更為靈活,布線更為方便,結構更為緊湊,基本實現原理仍然如圖4所示。
|
|
![]()
|
|
|
3 在車載數據采集系統(tǒng)中的應用
|
|
8位單片機擴展16位外部總線的方法已應用于車載數據采集系統(tǒng),圖5為該系統(tǒng)的原理框圖。汽車廠商在開發(fā)新車型或者關鍵零部件升級時,必須經過樣品試制、產品鑒定、小批試制和大批生產等必要階段。每個階段中,都伴隨著大量的可靠性試驗,車載數據采集系統(tǒng)正是為這些試驗而設計的。鑒于其特殊的使用條件,必須滿足如下基本要求:能夠進行連續(xù)、長時間數據采集、時間有可能是幾天或者一個月;因為有可能很多臺車輛的試驗同時進行,因而要求系統(tǒng)成本低且安全可靠,具有CAN總線數據采集接口。在圖5中,8位單片機上掛有3個8位總線器件(USB Slave器件,RAM和CAN總線器件)和1個16位總線接口設備(IDE硬盤)。
|
|
![]()
|
|
單片機采用前面提到的W77E58;為保證較高的數據傳輸速率,便于與外部串口設備(LCM顯示屏)通信,外部晶振頻率使用33M赫茲。
|
|
USB Slave器件采用PDIUSBD12,使用模塊化的方法實現一個USB接口,本次設計通過該器件把IDE硬盤映射成一個可移動硬盤,從而實現了大容量存儲類(MassStorage Class)。
|
|
RAM采用HY62WT08081E。該器件提供32KB的數據空間,用于數據采集以及FAT32文件系統(tǒng)操作的緩存。
|
|
CAN總線接口器件采用SJA1000+TLE6250的組合,SJA1000是獨立的CAN控制器,用于汽車和工業(yè)環(huán)境中的控制器局域網絡,TLE6250是針對汽車環(huán)境設計的CAN收發(fā)器。
|
|
IDE硬盤使用經過防震處理的工業(yè)用硬盤,也可使用CF卡加IDE轉接線的方式。
|
|
圖6為車載數據采集系統(tǒng)的簡要軟件流程圖。考慮到USB端口和CAN總線上的數據一般不會同時向系統(tǒng)發(fā)出請求,故軟件采用查詢方式工作,主要包括以下幾部分:主流程、USB協(xié)議實現、CAN總線數據和其他車輛狀態(tài)信號采集,以及FAT32協(xié)議實現。
|
|
![]()
|
[table] |