基于雙機通信的研究
當SCE214 與S3C4510B 同時(shí)向同一存儲單元( # 07FF) 寫(xiě)入數據時(shí),如果對側地址信號的穩態(tài)先于本側的時(shí),本側信號輸出 L.,表示禁止本側處理器寫(xiě)入,本側寫(xiě)入脈沖中加入等待周期; 若對側地址信號的穩態(tài)晚于本側時(shí),本側
信號輸出" H".,表示本側處理器可以執行寫(xiě)入操作;
不能同時(shí)為" L".。
圖6 是雙口RAM IDT7132 存儲器映射圖,IDT7132 空間大小為2 KB,存儲空間劃分為兩部分: 控制區和數據區。數據區分又分為兩部分: 1# 區和2#區,其空間均為512 B,1# 區用于實(shí)現SCE214 寫(xiě)入數據和S3C4510B 讀出數據,2# 區用于實(shí)現SCE214 讀出數據和S3C4510B 寫(xiě)入數據??刂茀^包含讀/ 寫(xiě)標志、1 # 數據區起始地址及有效數據最大地址偏移、2#數據區起始地址及有效數據最大地址偏移。
圖6 雙口RAM IDT7132 存儲器映射圖。
處理器對雙口RAM 的操作過(guò)程如下:
( 1) SCE214 有寫(xiě)入數據時(shí),將數據寫(xiě)入1# 區,有效數據起始地址寫(xiě)入$ 07FE、$ 07FD 存儲單元中( 按小端格式存放) ,有效數據地址最大偏移量寫(xiě)入$ 07FC、$ 07FB,并將$ 07FF 的Bit0 置為1;( 2) S3C4510B 讀雙口RAM 時(shí),先判斷$ 07FF 的Bit0 是否為1,若為1,從$ 07FE、$ 07FD 存儲單元中取出有效數據起始地址,從$ 07FC、$ 07FB 存儲單元中取出有效數據地址最大偏移量,根據有效數據起始地址和最大偏移量,讀出雙口RAM 中的數據,并將$ 07FF 的Bit0 置為0;( 3) S3C4510B 讀雙口RAM 時(shí),若判斷出$ 07FF的Bit0 為0,則S3C4510B 認為SCE214 無(wú)數據發(fā)送來(lái)。這時(shí)S3C4510B 若有數據需要寫(xiě)入雙口RAM,則將數據寫(xiě)入2# 區,有效數據起始地址寫(xiě)入$ 07FA、$ 07F9存儲單元中( 按小端格式存放) ,有效數據地址最大偏移量寫(xiě)入$ 07F8、$ 07F7,并將$ 07FF 的Bit3 置為1;( 4) SCE214 輪循到讀雙口RAM 操作時(shí),先判斷$ 07FF 的Bit3 是否為1,若為1,從$ 07FA、$ 07F9 存儲單元中取出有效數據起始地址,從$ 07F8、$ 07F7 存儲單元中取出最后一個(gè)有效數據的地址偏移,根據有效數據起始地址和最大偏移量,讀出雙口RAM 中的數據,并將$ 07FF 的Bit3 置為0;( 5) SCE214 輪循到讀雙口RAM 操作時(shí),若判斷出$ 07FF 的Bit3 為0,SCE214 認為S3C4510B 無(wú)數據發(fā)送來(lái)。
如此重復( 1) ~ ( 5) 的操作,即可完成SCE214 與S3C4510B 的雙向通信,最大一次可傳送512 B數據。
2 結論
雙機通信在嵌入式系統中應用比較廣泛,本文介紹的設計方案主要用于速率要求高、成本適中的場(chǎng)合。
由于本系統采用的是雙處理器結構設計,給系統的穩定性帶來(lái)一定的隱患,有待于在以后的研發(fā)中能將雙處理器集成為單片處理器。雙網(wǎng)數字傳真機研發(fā)的亮點(diǎn)在網(wǎng)絡(luò )傳真,其網(wǎng)絡(luò )傳真實(shí)現的業(yè)務(wù)不是實(shí)時(shí)傳真,加之因特網(wǎng)本身的時(shí)延較大,有待用戶(hù)檢驗,但其市場(chǎng)前景仍比較樂(lè )觀(guān)。
參考文獻:
[1].2K datasheethttp://www.dzsc.com/datasheet/2K+_2205217.html.
[2].S3C4510Bdatasheethttp://www.dzsc.com/datasheet/S3C4510B+_.html.
評論