<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

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

基于NiosII傳真通信規程的分析與設計實(shí)現

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

本文引用地址:http://dyxdggzs.com/article/157722.htm

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


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


上一頁(yè) 1 2 下一頁(yè)

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>