新聞中心

EEPW首頁 > 手機(jī)與無線通信 > 設(shè)計(jì)應(yīng)用 > 基于NiosII傳真通信規(guī)程的分析與設(shè)計(jì)實(shí)現(xiàn)

基于NiosII傳真通信規(guī)程的分析與設(shè)計(jì)實(shí)現(xiàn)

作者: 時(shí)間:2009-12-17 來源:網(wǎng)絡(luò) 收藏
2
2.1 系統(tǒng)
  系統(tǒng)開發(fā)工具選擇QuartusII和 IDE環(huán)境,結(jié)合SoPC技術(shù),軟硬件協(xié)同開發(fā)。器件選擇Altera公司的Cyclone系列EPEC20F400C開發(fā)板,使用QuartusII中SoPC Builder對(duì)硬件系統(tǒng)進(jìn)行定義,完成硬核開發(fā)的集成過程。根據(jù)設(shè)計(jì)需要對(duì)CPU進(jìn)行定制,包括CPU的數(shù)據(jù)和指令緩存的大小、CPU寄存器數(shù)量等[4]。除了之外,還需要將外圍設(shè)備的IP添加進(jìn)來。本設(shè)計(jì)就是將在前面提到的各種自帶的各種IP核(UART控制器、定時(shí)器等)添加進(jìn)來,其余自定義的邏輯器件接口同CPU的連接只需在SoPC Builder中將對(duì)應(yīng)的接口模塊添加進(jìn)來即可。
  NiosII核與調(diào)制解調(diào)器是通過UART控制器的。原來的UART直接選用Altera公司提供的標(biāo)準(zhǔn)UART組件,時(shí)通過寄存器單字節(jié)收發(fā),每個(gè)字節(jié)都會(huì)有中斷觸發(fā)。為了方便軟件編程,Altera提供硬件抽象層HAL(Hardware Abstract Level)系統(tǒng)庫驅(qū)動(dòng)程序,該驅(qū)動(dòng)程序是一個(gè)集成到HAL系統(tǒng)中的HAL字符模式設(shè)備驅(qū)動(dòng)程序,代替訪問UART寄存器,編程者直接使用HAL的API和ANSI C標(biāo)準(zhǔn)庫函數(shù)訪問UART。此時(shí),UART相當(dāng)于字符設(shè)備文件,可以像打開文件、讀寫文件一樣操作UART設(shè)備。
  對(duì)UART的操作與對(duì)文件的操作一樣。打開UART設(shè)備后,向調(diào)制解調(diào)器發(fā)送的AT指令和HDLC幀數(shù)據(jù)以寫文件的方式寫入U(xiǎn)ART設(shè)備,UART把數(shù)據(jù)發(fā)送至調(diào)制解調(diào)器的串口,命令執(zhí)行對(duì)應(yīng)的操作。調(diào)制解調(diào)器通過串口把結(jié)果值和HDLC幀數(shù)據(jù)返回到UART設(shè)備,程序以讀文件的方式從UART設(shè)備讀取數(shù)據(jù),并判斷執(zhí)行下一步對(duì)應(yīng)的操作。系統(tǒng)框圖如圖4所示。

本文引用地址:http://butianyuan.cn/article/157722.htm

2.2 程序流程設(shè)計(jì)
  發(fā)送過程就是對(duì)Modem不斷操作的過程,通過Modem完成數(shù)據(jù)的收發(fā)及信號(hào)的握手。DTE向調(diào)制解調(diào)器發(fā)送命令,調(diào)制解調(diào)器DCE對(duì)命令做出響應(yīng),完成該命令的操作,并返回命令執(zhí)行的結(jié)果碼。
  對(duì)調(diào)制解調(diào)器發(fā)送的命令是AT指令,命令形式化為“AT+命令值”,例如“AT+FRH=3”,表示命令Modem準(zhǔn)備以300 b/s的速率接收數(shù)據(jù)。根據(jù)T.30建議書的要求,發(fā)送的TCF信號(hào)是連續(xù)1.5 s的“0”序列,設(shè)計(jì)過程中通過反復(fù)實(shí)驗(yàn),用軟件連續(xù)發(fā)送一定的字節(jié)內(nèi)比特位為0的數(shù)據(jù),可達(dá)到要求。在接收TCF信號(hào)時(shí),把接收到的0比特?cái)?shù)據(jù)存入緩沖區(qū),然后判斷是否滿足在當(dāng)前通信速率下的連續(xù)0比特?cái)?shù)據(jù)量。在報(bào)文傳輸階段,發(fā)送的數(shù)據(jù)為處理后(掃描、二值化、編碼)二進(jìn)制數(shù)據(jù),根據(jù)ITU-T T.4標(biāo)準(zhǔn),傳輸?shù)臄?shù)據(jù)可以采用MH/MR/MMR編碼,并且每行的編碼數(shù)據(jù)發(fā)送時(shí)間不能少于20 ms[5]。所以編碼數(shù)據(jù)傳輸時(shí)要對(duì)數(shù)據(jù)量小的一行編碼進(jìn)行0 bit填充,這部分在軟件設(shè)計(jì)時(shí)。報(bào)文數(shù)據(jù)以字節(jié)為單位將8 bit數(shù)據(jù)高低位順序顛倒,再傳送給UART。報(bào)文數(shù)據(jù)傳送完之后需添加發(fā)送結(jié)束標(biāo)記DLE>ETX>,告訴Modem報(bào)文數(shù)據(jù)結(jié)束。
  同樣,接收傳真時(shí),T.30建議書對(duì)判斷連續(xù)1.5 s的“0”沒有具體要求,這里采用緩沖區(qū)數(shù)據(jù)判斷,把接收的“0”存入緩沖單元,判斷“0”的個(gè)數(shù)來決定當(dāng)前的通信速率是否滿足。在接收到報(bào)文數(shù)據(jù)后,需要把結(jié)束標(biāo)記從數(shù)據(jù)中濾出,存入緩沖區(qū),再傳送給譯碼打印系統(tǒng)或存儲(chǔ)Tiff文件。限于篇幅,僅給出如圖5所示的發(fā)送單頁傳真樣張軟件實(shí)現(xiàn)流程圖。


3 驗(yàn)證與調(diào)試
  在NiosII IDE開發(fā)環(huán)境下完成設(shè)計(jì)代碼,將Nios硬核和軟件程序下載到FPGA開發(fā)板上,在線調(diào)試。最后在開發(fā)板上運(yùn)行該程序,實(shí)現(xiàn)與遠(yuǎn)端普通傳真機(jī)的傳真業(yè)務(wù)通信。所選擇的遠(yuǎn)端普通傳真機(jī)為光電傳真機(jī)OEF319系列傳真機(jī)和Pansonnic系列傳真機(jī)。測(cè)試主要內(nèi)容為:
  (1)發(fā)送傳真。在PC機(jī)上將符合ITU標(biāo)準(zhǔn)的測(cè)試樣張Tiff文件中的傳真數(shù)據(jù)存儲(chǔ)到文件,運(yùn)行NiosII環(huán)境時(shí)暫存到緩沖區(qū),執(zhí)行傳真通信,將傳真數(shù)據(jù)發(fā)送出去。遠(yuǎn)端傳真機(jī)打印出數(shù)據(jù)和樣張對(duì)比,文字清晰可讀。
  (2)接收傳真。和遠(yuǎn)端傳真機(jī)通信,接收對(duì)方發(fā)來的傳真數(shù)據(jù)并緩存。由于沒有打印設(shè)備,不能有效對(duì)比接收數(shù)據(jù)和樣張。把本次接收的數(shù)據(jù)緩存,作為發(fā)送傳真的測(cè)試數(shù)據(jù),基本保證了傳真測(cè)試。采用這樣的測(cè)試策略,接收傳真的功能基本實(shí)現(xiàn)。在后面深入研究中,可以將打印設(shè)備添加到FPGA開發(fā)板的系統(tǒng)中,這樣就完善了傳真系統(tǒng)。
  經(jīng)測(cè)試對(duì)比,傳真流程合理,與商用傳真機(jī)正常通信。但傳真附加功能和整個(gè)傳真系統(tǒng)還有待于進(jìn)一步完善。本文深入了T.30傳真通信建議書,NiosII軟件集成開發(fā)環(huán)境實(shí)現(xiàn)了傳真通信,并將軟件下載到Altera公司系列開發(fā)板上。通過測(cè)試驗(yàn)證,實(shí)現(xiàn)了和普通商用傳真機(jī)的傳真通信。NiosII軟核的傳真通信的實(shí)現(xiàn),為嵌入式傳真機(jī)提供了一種新的設(shè)計(jì)開發(fā)策略,為傳真機(jī)產(chǎn)品升級(jí)和提高性能提供了參考;對(duì)打破國外傳真機(jī)芯片及產(chǎn)品的壟斷,實(shí)現(xiàn)中國傳真機(jī)自主知識(shí)產(chǎn)權(quán)及產(chǎn)業(yè)化,都具有重要的現(xiàn)實(shí)意義。


上一頁 1 2 下一頁

評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉