基于NiosII傳真通信規(guī)程的分析與設計實現(xiàn)
2.1 傳真系統(tǒng)設計
系統(tǒng)開發(fā)工具選擇QuartusII和NiosII IDE環(huán)境,結合SoPC技術,軟硬件協(xié)同設計開發(fā)。器件選擇Altera公司的Cyclone系列EPEC20F400C開發(fā)板,使用QuartusII中SoPC Builder對硬件系統(tǒng)進行定義,完成硬核開發(fā)的集成過程。根據(jù)設計需要對CPU進行定制,包括CPU的數(shù)據(jù)和指令緩存的大小、CPU寄存器數(shù)量等[4]。除了NiosII之外,還需要將外圍設備的IP添加進來。本設計就是將在前面提到的各種NiosII自帶的各種IP核(UART控制器、定時器等)添加進來,其余自定義的邏輯器件接口同CPU的連接只需在SoPC Builder中將對應的接口模塊添加進來即可。
NiosII核與調制解調器通信是通過UART控制器實現(xiàn)的。原來的UART直接選用Altera公司提供的標準UART組件,通信時通過寄存器單字節(jié)收發(fā),每個字節(jié)都會有中斷觸發(fā)。為了方便軟件編程,Altera提供硬件抽象層HAL(Hardware Abstract Level)系統(tǒng)庫驅動程序,該驅動程序是一個集成到HAL系統(tǒng)中的HAL字符模式設備驅動程序,代替訪問UART寄存器,編程者直接使用HAL的API和ANSI C標準庫函數(shù)訪問UART。此時,UART相當于字符設備文件,可以像打開文件、讀寫文件一樣操作UART設備。
對UART的操作與對文件的操作一樣。打開UART設備后,向調制解調器發(fā)送的AT指令和HDLC幀數(shù)據(jù)以寫文件的方式寫入UART設備,UART把數(shù)據(jù)發(fā)送至調制解調器的串口,命令執(zhí)行對應的操作。調制解調器通過串口把結果值和HDLC幀數(shù)據(jù)返回到UART設備,程序以讀文件的方式從UART設備讀取數(shù)據(jù),并判斷執(zhí)行下一步對應的操作。系統(tǒng)框圖如圖4所示。本文引用地址:http://www.ex-cimer.com/article/157722.htm
2.2 程序流程設計
傳真發(fā)送過程就是對Modem不斷操作的過程,通過Modem完成數(shù)據(jù)的收發(fā)及信號的握手。DTE向調制解調器發(fā)送命令,調制解調器DCE對命令做出響應,完成該命令的操作,并返回命令執(zhí)行的結果碼。
對調制解調器發(fā)送的命令是AT指令,命令形式化為“AT+命令值”,例如“AT+FRH=3”,表示命令Modem準備以300 b/s的速率接收數(shù)據(jù)。根據(jù)T.30建議書的要求,發(fā)送的TCF信號是連續(xù)1.5 s的“0”序列,設計過程中通過反復實驗,用軟件連續(xù)發(fā)送一定的字節(jié)內比特位為0的數(shù)據(jù),可達到通信要求。在接收TCF信號時,把接收到的0比特數(shù)據(jù)存入緩沖區(qū),然后判斷是否滿足在當前通信速率下的連續(xù)0比特數(shù)據(jù)量。在報文傳輸階段,發(fā)送的數(shù)據(jù)為處理后(掃描、二值化、編碼)二進制數(shù)據(jù),根據(jù)ITU-T T.4標準,傳輸?shù)臄?shù)據(jù)可以采用MH/MR/MMR編碼,并且每行的編碼數(shù)據(jù)發(fā)送時間不能少于20 ms[5]。所以編碼數(shù)據(jù)傳輸時要對數(shù)據(jù)量小的一行編碼進行0 bit填充,這部分在軟件設計時實現(xiàn)。報文數(shù)據(jù)以字節(jié)為單位將8 bit數(shù)據(jù)高低位順序顛倒,再傳送給UART。報文數(shù)據(jù)傳送完之后需添加發(fā)送結束標記DLE>ETX>,告訴Modem報文數(shù)據(jù)結束。
同樣,接收傳真時,T.30建議書對判斷連續(xù)1.5 s的“0”沒有具體要求,這里采用緩沖區(qū)數(shù)據(jù)判斷,把接收的“0”存入緩沖單元,判斷“0”的個數(shù)來決定當前的通信速率是否滿足。在接收到報文數(shù)據(jù)后,需要把結束標記從數(shù)據(jù)中濾出,存入緩沖區(qū),再傳送給譯碼打印系統(tǒng)或存儲Tiff文件。限于篇幅,僅給出如圖5所示的發(fā)送單頁傳真樣張軟件實現(xiàn)流程圖。
3 驗證與調試
在NiosII IDE開發(fā)環(huán)境下完成設計代碼,將Nios硬核和軟件程序下載到FPGA開發(fā)板上,在線調試。最后在開發(fā)板上運行該程序,實現(xiàn)與遠端普通傳真機的傳真業(yè)務通信。所選擇的遠端普通傳真機為光電傳真機OEF319系列傳真機和Pansonnic系列傳真機。測試主要內容為:
(1)發(fā)送傳真。在PC機上將符合ITU標準的測試樣張Tiff文件中的傳真數(shù)據(jù)存儲到文件,運行NiosII環(huán)境時暫存到緩沖區(qū),執(zhí)行傳真通信,將傳真數(shù)據(jù)發(fā)送出去。遠端傳真機打印出數(shù)據(jù)和樣張對比,文字清晰可讀。
(2)接收傳真。和遠端傳真機通信,接收對方發(fā)來的傳真數(shù)據(jù)并緩存。由于沒有打印設備,不能有效對比接收數(shù)據(jù)和樣張。把本次接收的數(shù)據(jù)緩存,作為發(fā)送傳真的測試數(shù)據(jù),基本保證了傳真測試。采用這樣的測試策略,接收傳真的功能基本實現(xiàn)。在后面深入研究中,可以將打印設備添加到FPGA開發(fā)板的系統(tǒng)中,這樣就完善了傳真系統(tǒng)。
經測試對比分析,傳真流程合理,與商用傳真機正常通信。但傳真附加功能和整個傳真系統(tǒng)還有待于進一步完善。本文深入分析了T.30傳真通信建議書,基于NiosII軟件集成開發(fā)環(huán)境實現(xiàn)了傳真通信規(guī)程,并將軟件下載到Altera公司系列開發(fā)板上。通過測試驗證,實現(xiàn)了和普通商用傳真機的傳真通信。基于NiosII軟核的傳真通信規(guī)程的實現(xiàn),為嵌入式傳真機提供了一種新的設計開發(fā)策略,為傳真機產品升級和提高性能提供了參考;對打破國外傳真機芯片及產品的壟斷,實現(xiàn)中國傳真機自主知識產權及產業(yè)化,都具有重要的現(xiàn)實意義。
評論