基于共享存儲器的多處理機并行快速通信
3 軟件設計
定義2個(gè)IDT7134的存儲區:unsignedcharxdata*xRAM1=0x0000和unsigned char xdata*xRAM2=0x0800,既是把IDT7134的4096個(gè)地址平分,分別作為CPU1存儲,CPU2讀取的存儲專(zhuān)區1;后者作為CPU2存取,CPU1讀取的專(zhuān)區2。在每一個(gè)專(zhuān)區,只允許專(zhuān)有的動(dòng)作,其他的操作視作非法操作。
接下來(lái)第二步是設定標志位。對CPU1,CPU2的操作分別設定3個(gè)相應的標志位:CPU1有cpu1_updata_flag(為0時(shí)表示存儲專(zhuān)區1未更新,不必讀??;為1時(shí)表示存儲專(zhuān)區1已更新,可以讀取);cpu1_writing_flag(為0時(shí)表示未對該存儲專(zhuān)區1寫(xiě)入操作,可以在數據有更新的情況下對該數據區進(jìn)行讀??;為1時(shí)表示正對該數據區進(jìn)行寫(xiě)操作,禁止讀取);cpu1_reading_flag(為0時(shí)表示未對存儲專(zhuān)區2進(jìn)行讀操作,如果存儲專(zhuān)區2的數據未更新,則CPU2可以對其進(jìn)行寫(xiě)入操作)。同理,CPU2也有相應的3個(gè)標志:cpu2_updata_flag,cpu2_writing_flag,cpu2_ rading_flag,并具有類(lèi)似的含義。
系統上電后,先自檢,一切正常后,復位。復位后,所有的標志位置為0,然后進(jìn)行相應的數據傳輸。CPU1和CPU2相應的工作流程如圖5所示。本文引用地址:http://dyxdggzs.com/article/155979.htm
4 結束語(yǔ)
本并行通信采用IDT7134雙口RAM,實(shí)驗表明具有功率損耗小,傳輸速率高,實(shí)時(shí)性好,可靠性高。該系統可廣泛應用在數據采集、多機通信系統中,并對其他的嵌入式系統有一定的借鑒作用。
根據目前的實(shí)踐情況來(lái)看,下一步是把雙口RAM應用在多處理機中,為此需要解決多處理機的地址爭用問(wèn)題,需要提出更優(yōu)良的算法以實(shí)現有效性和實(shí)時(shí)性。
評論