傳真通信不僅能傳送圖像/ 圖形信息,而且可以保留其具體的形式,,因此,,真跡傳送是傳真通信又一主要特點(diǎn),也是最具魅力的特點(diǎn),。隨著因特網(wǎng)的發(fā)展,,收發(fā)電子郵件已經(jīng)成為大部分公司與個(gè)人或其他公司進(jìn)行通信聯(lián)系的主要方式。在公司內(nèi)部,,相比使用電話進(jìn)行通信,,人們更愿意使用電子郵件,電子郵件已經(jīng)成為大多數(shù)人的第二種主要通信手段,。相比傳統(tǒng)傳真,,電子郵件有一個(gè)顯著的優(yōu)點(diǎn): 成本很低?;谶@種原因,,人們自然會(huì)聯(lián)想到通過因特網(wǎng)發(fā)送傳真,這就是網(wǎng)絡(luò)傳真,。
雙網(wǎng)數(shù)字傳真機(jī)與普通傳真機(jī)的最大區(qū)別是增加了網(wǎng)絡(luò)傳輸接口,,具有普通電話網(wǎng)和因特網(wǎng)兩種傳輸模式,增強(qiáng)了傳真機(jī)的功能,,擴(kuò)展其適用范圍,,提高了傳輸效率和傳輸可靠性,保證良好的圖像質(zhì)量,,并大幅度地降低了傳真所帶來的長(zhǎng)途通信費(fèi)用,。
雙網(wǎng)數(shù)字傳真機(jī)是一個(gè)雙處理器結(jié)構(gòu)( 主處理器是SCE214,從處理器是A RM S3C4510B) 的嵌入式系統(tǒng),要實(shí)現(xiàn)網(wǎng)絡(luò)傳真功能首先必須實(shí)現(xiàn)系統(tǒng)內(nèi)的雙機(jī)通信,即主處理器與從處理器的信息交換,。
1 雙機(jī)通信的硬件實(shí)現(xiàn)
采用IDT 公司的2K ×8 b 的高速雙口RAMIDT7132 來實(shí)現(xiàn)雙機(jī)通信,。雙口RAM 是常見的共享式多端口存儲(chǔ)器,如圖1 所示,,雙口RAM 最大的特點(diǎn)是存儲(chǔ)數(shù)據(jù)共享,,一個(gè)存儲(chǔ)器配備兩套獨(dú)立的地址、數(shù)據(jù)和控制線,,允許兩個(gè)獨(dú)立的CPU 或控制器同時(shí)異步地訪問存儲(chǔ)單元,。既然數(shù)據(jù)共享,就必須存在訪問仲裁控制,。內(nèi)部仲裁邏輯控制提供以下功能: 對(duì)同一地址單元訪問的時(shí)序控制; 存儲(chǔ)單元數(shù)據(jù)塊的訪問權(quán)限分配;信令交換邏輯
( 例如中斷信號(hào)) 等,。
圖1 雙口RAM 的功能框圖,。
它允許兩個(gè)( 左、右) 端口同時(shí)讀寫數(shù)據(jù),,每個(gè)端口具有自己獨(dú)立的控制信號(hào)線,、地址線和數(shù)據(jù)線; 允許數(shù)據(jù)高速存取,最快存取時(shí)間為20 ns; 功耗低,,工作在省電模式時(shí),,功耗為5 mW; 其數(shù)據(jù)保存電壓為2 V,便于用電池完成數(shù)據(jù)的掉電保護(hù),。IDT 7132 可以作為8 位雙口RAM 單獨(dú)使用,,也可以與IDT7142 組成主從式系統(tǒng),將數(shù)據(jù)線擴(kuò)展到16 位,,甚至更寬,。IDT7132 支持從其兩個(gè)端El 對(duì)器件的任何存儲(chǔ)空間進(jìn)行完全異步的讀/ 寫操作。通過的控制,,IDT7132 自動(dòng)工作在省電模式下,,而且還可以通過接電池達(dá)到數(shù)據(jù)保護(hù)的目的。
IDT7132 工作情況如下: 當(dāng)左右端口不對(duì)同一地址單元存取時(shí),,,,可正常存儲(chǔ),其中: H 表示高電平,L 表示低電平,。當(dāng)左右端口對(duì)同一地址單元存取時(shí),,有一端口的
= L,禁止數(shù)據(jù)的存取,。此時(shí),,兩個(gè)端口中,哪個(gè)存取請(qǐng)求信號(hào)出現(xiàn)在前,則其對(duì)應(yīng)的
= H,,允許存取; 哪個(gè)存取請(qǐng)求信號(hào)出現(xiàn)在后,,則其對(duì)應(yīng)的
= L,禁止其寫入數(shù)據(jù),。需要注意的是,,兩端口間的存取請(qǐng)求信號(hào)出現(xiàn)時(shí)間要相差在5 ns 以上,否則仲裁邏輯無法判定哪一個(gè)端口的存取請(qǐng)求信號(hào)在前; 在無法判定哪個(gè)端口先出現(xiàn)存取請(qǐng)求信號(hào)時(shí),,控制線
只有一個(gè)為低電平,,不會(huì)同時(shí)為低電平。這樣,,就能保證一個(gè)對(duì)應(yīng)于
=H 的端口能進(jìn)行正常存取,對(duì)應(yīng)于
= L 的端口不存取,,避免雙端口存取出現(xiàn)錯(cuò)誤,。非競(jìng)爭(zhēng)真值表見表1,,競(jìng)爭(zhēng)真值表見表2。
表1 IDT7132 非競(jìng)爭(zhēng)真值表,。
表2 IDT7132 競(jìng)爭(zhēng)真值表,。
圖2 是IDT7132 在本系統(tǒng)中的連接框圖。IDT7132 的寫入時(shí)序圖和讀出時(shí)序如圖3,,圖4 所示,。
在寫入時(shí)序圖中,由脈沖上升沿控制寫入操作,,在讀出時(shí)序圖中,,由
脈沖上升沿控制讀出操作。
圖2雙口RAM 芯片IDT7132 連接框圖,。
圖3 IDT7132 寫入時(shí)序圖,。
圖4 IDT7132 讀出時(shí)序圖。
SCE214 和ARM 處理器間數(shù)據(jù)交換的軟件實(shí)現(xiàn)是采用輪詢方式分別讀/ 寫雙口RAM,。它們的讀/ 寫操作過程基本相同,,工作流程如圖5 所示。
圖5 主,、從處理器讀/ 寫雙口RAM 流程圖。
SCE214 處理器采用匯編語(yǔ)言實(shí)現(xiàn)對(duì)雙口RAM 的讀/ 寫; ARM( S3C4510B) 處理器采用C+ + 語(yǔ)言編程,,并基于嵌入式操作系統(tǒng)VxWorks 實(shí)現(xiàn)對(duì)雙口RAM 的讀/ 寫,。
當(dāng)SCE214 與S3C4510B 同時(shí)向同一存儲(chǔ)單元( # 07FF) 寫入數(shù)據(jù)時(shí),如果對(duì)側(cè)地址信號(hào)的穩(wěn)態(tài)先于本側(cè)的時(shí),,本側(cè)信號(hào)輸出& L.,,表示禁止本側(cè)處理器寫入,本側(cè)寫入脈沖中加入等待周期; 若對(duì)側(cè)地址信號(hào)的穩(wěn)態(tài)晚于本側(cè)時(shí),,本側(cè)
信號(hào)輸出" H".,,表示本側(cè)處理器可以執(zhí)行寫入操作;
不能同時(shí)為" L".。
圖6 是雙口RAM IDT7132 存儲(chǔ)器映射圖,IDT7132 空間大小為2 KB,,存儲(chǔ)空間劃分為兩部分: 控制區(qū)和數(shù)據(jù)區(qū),。數(shù)據(jù)區(qū)分又分為兩部分: 1# 區(qū)和2#區(qū),其空間均為512 B,,1# 區(qū)用于實(shí)現(xiàn)SCE214 寫入數(shù)據(jù)和S3C4510B 讀出數(shù)據(jù),,2# 區(qū)用于實(shí)現(xiàn)SCE214 讀出數(shù)據(jù)和S3C4510B 寫入數(shù)據(jù)??刂茀^(qū)包含讀/ 寫標(biāo)志,、1 # 數(shù)據(jù)區(qū)起始地址及有效數(shù)據(jù)最大地址偏移、2#數(shù)據(jù)區(qū)起始地址及有效數(shù)據(jù)最大地址偏移,。
圖6 雙口RAM IDT7132 存儲(chǔ)器映射圖,。
處理器對(duì)雙口RAM 的操作過程如下:
( 1) SCE214 有寫入數(shù)據(jù)時(shí),,將數(shù)據(jù)寫入1# 區(qū),有效數(shù)據(jù)起始地址寫入$ 07FE,、$ 07FD 存儲(chǔ)單元中( 按小端格式存放) ,,有效數(shù)據(jù)地址最大偏移量寫入$ 07FC、$ 07FB,,并將$ 07FF 的Bit0 置為1;( 2) S3C4510B 讀雙口RAM 時(shí),,先判斷$ 07FF 的Bit0 是否為1,若為1,,從$ 07FE,、$ 07FD 存儲(chǔ)單元中取出有效數(shù)據(jù)起始地址,從$ 07FC,、$ 07FB 存儲(chǔ)單元中取出有效數(shù)據(jù)地址最大偏移量,,根據(jù)有效數(shù)據(jù)起始地址和最大偏移量,讀出雙口RAM 中的數(shù)據(jù),,并將$ 07FF 的Bit0 置為0;( 3) S3C4510B 讀雙口RAM 時(shí),,若判斷出$ 07FF的Bit0 為0,則S3C4510B 認(rèn)為SCE214 無數(shù)據(jù)發(fā)送來,。這時(shí)S3C4510B 若有數(shù)據(jù)需要寫入雙口RAM,,則將數(shù)據(jù)寫入2# 區(qū),有效數(shù)據(jù)起始地址寫入$ 07FA,、$ 07F9存儲(chǔ)單元中( 按小端格式存放) ,,有效數(shù)據(jù)地址最大偏移量寫入$ 07F8、$ 07F7,,并將$ 07FF 的Bit3 置為1;( 4) SCE214 輪循到讀雙口RAM 操作時(shí),,先判斷$ 07FF 的Bit3 是否為1,若為1,,從$ 07FA,、$ 07F9 存儲(chǔ)單元中取出有效數(shù)據(jù)起始地址,從$ 07F8,、$ 07F7 存儲(chǔ)單元中取出最后一個(gè)有效數(shù)據(jù)的地址偏移,,根據(jù)有效數(shù)據(jù)起始地址和最大偏移量,讀出雙口RAM 中的數(shù)據(jù),,并將$ 07FF 的Bit3 置為0;( 5) SCE214 輪循到讀雙口RAM 操作時(shí),,若判斷出$ 07FF 的Bit3 為0,SCE214 認(rèn)為S3C4510B 無數(shù)據(jù)發(fā)送來,。
如此重復(fù)( 1) ~ ( 5) 的操作,,即可完成SCE214 與S3C4510B 的雙向通信,最大一次可傳送512 B數(shù)據(jù)。
2 結(jié)論
雙機(jī)通信在嵌入式系統(tǒng)中應(yīng)用比較廣泛,,本文介紹的設(shè)計(jì)方案主要用于速率要求高,、成本適中的場(chǎng)合。
由于本系統(tǒng)采用的是雙處理器結(jié)構(gòu)設(shè)計(jì),,給系統(tǒng)的穩(wěn)定性帶來一定的隱患,有待于在以后的研發(fā)中能將雙處理器集成為單片處理器,。雙網(wǎng)數(shù)字傳真機(jī)研發(fā)的亮點(diǎn)在網(wǎng)絡(luò)傳真,,其網(wǎng)絡(luò)傳真實(shí)現(xiàn)的業(yè)務(wù)不是實(shí)時(shí)傳真,加之因特網(wǎng)本身的時(shí)延較大,有待用戶檢驗(yàn),,但其市場(chǎng)前景仍比較樂觀,。