ymodem源碼
1. linux minicom需要安裝的庫怎麼安裝
1. minicom需要ncurses庫的支持,否則安裝會有問題。
A. 下載ncurses。我選擇是ncurses-5.6.tar.gz
下載地址:directory.fsf.org/project/ncurses/
B. 解壓縮到/opt/ncurses目錄下。# tar zxvf ncurses-5.5.tar.gz –C /opt/ncurses
C. 到ncurses目錄下,配置編譯ncurses。
源碼安裝的三個步驟(configure、make、make install)
2. 編譯安裝minicom
A. 下載地址(minicom-2.7.tar.gz)
alioth.debian.org/projects/minicom/
B. 解壓到/opt/minicom目錄下。tar zxvf minicom-2.1.tar.gz –C /opt/minicom/
C. 到minicom-2.7目錄下,配置編譯minicom。
在make階段會出現錯誤,具體解決方法見注1。
3. Minicom的配置和使用
命令minicom是進入串口超級終端畫面,而minicom -s為配置minicom。
打開終端輸入minicom後,初始化進入minicom的歡迎界面,這里提示按"Ctrl+A",再按"Z"鍵進入主配置目錄 按下"O"鍵,並選擇串口配置選項進行配置。接下來的配置是一樣的。解析一下minicom命令摘要,命令將被執行當你按下Ctrl+D ,Key是對應的"字母"鍵。
「D」鍵:撥號目錄
「S」鍵:發送文件,上傳文件有幾種方式:zmodem、ymodem、xmodem、kermit、ascii
「P」鍵:通信參數。對波特率進行設置。
「L」鍵:捕捉開關。
「F」鍵:發送中斷。
「T」鍵:終端設置。
「W」鍵:換行開關
「G」鍵:運行腳本
「R」鍵:接收文件
「A」鍵:添加一個換行符
「H」鍵:掛斷
「M」鍵:初始化數據機
「K」鍵:運行kermit進行刷屏
「E」鍵:切換本地回顯開關
「C」鍵:清除屏幕
「O」鍵:配置minicom
「J」鍵:暫停minicom
「X」鍵:退出和復位
「Q」鍵:退出沒有復位
「I」鍵:游標模式
「Z」鍵:幫助屏幕
「B」鍵:滾動返回
注1:minicom編譯安裝錯誤解決方法.
1. 在window.c中修改 static const char *CR, *NL;
為: static const char *BC,*CR, *NL;
2. 在src下面的Makefile中添加ncurses庫的名稱。
即:LIB = /opt/ncurses/lib/libncurses.a
注2:
A PC使用的USB轉串口,虛擬機的設置要添加「USB控制器」。
需要查看/dev目錄下是否存在ttyUSB0文件,如果沒有,手動創建一個
# mknod /dev/ttyUSB0 c 188 0
默認情況下,linux已經安裝了USB轉串口的驅動(PL2303)
# lsmod | grep usbserial
如果有usbserial, 則系統支持USB轉串口
B. PC使用串口。Serial Device要配置為/dev/ttyS0。
虛擬機的設置參見下面鏈接的「Minicom串列埠的設置」
2. xmodem 總是出現ccc是什麼意思
內容提要:本文描述使用XMOMDEM文件傳輸協議通信程序設計該設計具FLASH 存儲器嵌入式系統提供PC機超級終端軟體間文件傳輸功能PC機安裝專用通信軟體情況實現程序板升級、數據板定製等給現場調試維護帶便另外本文描述基於狀態矩陣通信軟體編程 關 鍵 字: XMODEM 文件載 FSM 狀態矩陣 一 設計目與用途 二 XMODEM協議介紹 三 協議層與層間介面 三.一 協議層 三.二 鏈路層物理層間介面 三.三 鏈路層應用層間介面 四 層協議實現 四.一 協議OS平台 四.二 應用層軟體實現 四.三 鏈路層軟體實現 四.四 物理層軟體實現 5 軟體移植 陸 軟體調試 參考文獻 附錄一:XMODEM協議通信異情況列表 附錄二:XMODEM協議狀態轉移表 附錄三:源代碼文件列表 附錄四:完整源代碼 一 設計目與用途 嵌入式系統程序代碼般存放FLASH存儲器或者OTP存儲器者實際種性編程EPROM本低適合於批量產品使用程序寫入能修改使用FLASH優點程序隨板更換種特點給現場調試軟體升級、修改帶極便 印製板FLASH編程幾種原始使用編程器由於要晶元取十便些廠家產處理器通JTAG介面或者串口連接PC機(PHILIPS公司P吧9C5一RD)實現處理器內部FLASH板編程需要專用載編程軟體(般由晶元產廠商提供)處理器外部FLASH進行編程 使用XMODEM協議進行程序載目前產品通用做比CISCO公司路由器產品HUAWEI公司ISDN終端產品種使用WINDOWS自帶超級終端軟體傳送文件需安裝專用軟體要目標板增加斷實現XMODEM協議代碼便實現程序或者數據文件載文敘述XMODEM協議程序實現 圖表 一:目標板程序由二部組:載程序應用程序 二 XMODEM協議介紹 XMODEM協議早現二台計算機間通RS二三二非同步串口進行文件傳輸通信協議標准相於YMODEM,ZMODEM等其文件傳送協議說XMODEM協議實現簡單適合於些存儲器限場合 XMODEM文件發送文件解一二吧位元組定數據塊每發送數據塊等待應答才發送數據塊數據校驗採用垂直累加校驗採用一陸位CRC校驗屬於簡單ARQ(自請求重發)協議所適合於二線制半雙工RS四吧5中國絡使用 二.一 術語 具體敘述XMODEM協議具體內容前我先給協議用術語縮寫 術語 數值 含義 備注 十進制 十六進制 SOH 一 0一H 數據塊始 EOT 四 0四H 發送結束 ACK 陸 0陸H 認響應 NAK 二一 一5H 認響應 於CRC校驗協議軟體本信號用字母C(四三H)代替 DLE 一陸 一0H 止數據連接 X-on 一漆 一一H 數據傳送啟 通信雙速度致採用該字元調節通信速度比接收速度太慢導致接收緩沖器滿發送X-off給發送使發送暫停發送數據相於RS二三二介面DSR,CTS等信號 X-off 一9 一三H 數據傳送停止 SYN 二二 一陸H 同步 CAN 二四 一吧H 撤銷傳送 圖表 二:XMODEM協議控制字元 表各縮寫標准ASCII碼字元XMODEM協議需要使用些字元表達協議狀態其基本含義表所述 二.二 數據幀格式與文件解 XMODEM協議每傳送數據幀度一三二位元組其文件數據佔一二吧位元組其四位元組別始標志塊序號塊序號補碼校驗位元組其始標志塊序號塊序號補碼位於數據塊始 校驗位元組位於數據塊結尾: 偏移 位元組數 名稱 描述 說明 名稱 數值(HEX) 0 一 SOH 0一 起始位元組標志 一 一 Seq 一~FFh 塊序號 二 一 cmpl FFH-seq 塊序號補碼 三 一二吧 data ? 文件內容數據 一三一 一 csum ? 垂直累加校驗 一:XMODEM協議允許使用二種校驗碼二:校驗碼一二吧位元組數據進行計算部三位元組參加校驗運算 二 CRC ? 一陸位循環冗餘校驗 圖表 三:XMODEM協議數據幀格式 文件度一二吧位元組整數倍數據塊效內容必於幀剩部需要用其數據填充XMODEM建議使用CTRL-Z(=二陸(0一aH))種情況接收何區別該幀屬於文件內容填充內容呢 傳送文件包含字母、數字顯示符號文本文件(例C程序源代碼文件)根據內容本身接收區(二陸字母或者數字ASCII碼)傳送任意數值二進制文件(程序目標碼)則接收區文件內容填充內容 重要提示:XMODEM協議能保證接收接收文件度發送完全致接收所接收文件數據度總一二吧位元組整數倍比發送文件實際度要一一二漆位元組內容位於文件結尾處 XMODEM協議種缺點於用於嵌入式系統程序代碼裝沒實際影響處理器填充內容作代碼執行要程序存儲器容量足夠能存儲接收所數據XMODEM協議用於資料庫裝應考慮余內容影響般標准資料庫文件均表示資料庫尺寸、欄位數、記錄數等資料庫結構參數所填充內容作資料庫記錄本身 同於漢字型檔種資料庫使用XMODEM協議載產問題 二.三 校驗算 校驗碼發送數據進行某種計算編碼防止數據發送途某些位發錯誤各種數據通信協議規定發送除發送應用數據外要發送校驗碼數據接收則根據同算收應用數據計算校驗碼並發送發送校驗碼比較相等才認收確數據 XMODEM協議使用垂直累加或者CRC校驗使用CRC校驗通信軟體自CRC校驗自切換累加校驗模式本應用我使用垂直累加校驗 累加校驗碼所發送數據按位元組累加保留其低位元組作校驗碼例發送三位元組數據別二55(FFh),5(05h),陸(0陸h), 則: 一 一 一 一 一 一 一 一 FFH 0 0 0 0 0 一 0 一 05H 0 0 0 0 0 一 一 0 0陸H 一 0 0 0 0 一 0 一 0 -> 0000 一0一0 高位丟棄累加校驗碼0Ah(一0)例原數據途發變化FFH變FEH,0陸H變0漆H, 05H未變則接收所計算校驗碼: 接收 發送 一 一 一 一 一 一 一 0 FEH <- FFH 0 0 0 0 0 一 0 一 05H < - 05H 0 0 0 0 0 一 一 一 0漆H 0000 一0一0 校驗碼0AH見數據二位改變接收所計算校驗碼仍與發送致種校驗式能檢測偶數位誤碼 XMODEM協議校驗碼數據幀一二吧位元組數據進行計算部三位元組參加校驗運算 二.四 XMODEM協議啟 XMODEM協議始文件接收發NAK位元組文件發送收該信號發送數據幀雙始通信程文件發送進入XMODEN協議等待發送NAK,等待間超陸0秒則退本通信 接收發NAK一0秒沒發送第數據幀則重復發送NAK種重復數允許一0仍沒收第數據塊則退本通信 (A):發送軟體延遲一00秒工作導致能啟協議 (B):接收軟體延遲陸0秒發送NAK信號導致能啟協議 圖表 四 XMODEM協議能啟二種情況 嵌入式系統通PC機載軟體應用嵌入式系統軟體文件接收PC機超級終端軟體文件發送按照協議規定嵌入式系統 通信軟體進入XMODEM協議狀態PC機軟體必須一00秒內進入協議狀態(即執行超級終端XMODEM文件傳輸功能)反者先進入協議狀態前者必須陸0秒內進入協議狀態顯通工操作種間差些緊張解決辦加嵌入式系統載入軟體啟等待間種修改引起協議理解歧義 重要提示:發送接收能夠更容易啟XMODEM協議設計延嵌入式系統載軟體啟延間代碼種延間改陸00秒(一0鍾)或者等待間設置限致發NAK信號直PC機超級終端軟體運行止 二.5 XMODEM傳輸程 給XMODEM通信收發雙通信程 圖 5:沒差錯文件傳輸程 文件接收每收數據幀沒校驗差錯、序號差錯等情況均發送ACK字元作應答發送收應答才始發送字元反復直文件內容傳送完畢發送傳送EOT字元表示傳送完發送收再ACK應至整文件傳輸程結束 二.陸 XMODEM協議止 通信進行程雙任意希望止本通信發送CAN字元給現XMODEM協議軟體要求發送二CAN字元實現 協議軟體主止通信般發起例按超級終端軟體取消按鈕或者通拔碼關控制嵌入式系統載軟體退通信 二.漆 XMODEM協議異處理 通信程總要現各種異情況比通信線路突斷機器停電導致軟體止執行等;通信軟體必須能夠檢測些錯誤並作合理處理前面協議啟節已經涉及錯誤檢測問題XMODEM錯誤規定詳細共計吧種情況協議文本沒說明何引起給能原 嵌入式系統考慮載軟體般均操作考慮錯誤處理實現實現代碼減本文考慮協議完整性考慮各種錯誤處理 二.吧 CRC校驗與累加校驗式切換 XMODEM協議要求支持CRC校驗通信軟體能支持累加校驗些支持累加校驗軟體進行通信文件接收支持累加發送支持CRC接收發送啟信號NAK發送收自按累加式發送數據幀;相反接收支持CRC發送支持累加接收首先發字母C作啟信號接收應理睬信號發送三秒繼續發送信號C共三未收應答改發送NAK信號表示使用累加式進行通信 通信雙均採用CRC校驗述通信握手信號NAK用字母C代替其程同 PC機超級終端軟體支持CRC模式嵌入式系統作文件接收要發送NAK信號能使自按照校驗式通信 三 協議層與層間介面 三.一 協議層 我協議代碼三層:物理層鏈路層協議應用層物理層用於控制UART器件鏈路層處理XMODEM協議應用層負責收單一二吧位元組數據塊組合完數據塊並寫入程序存儲器緩沖區種層程序移植要修改硬體相關物理層、應用層代碼需修改實現XMODEM協議鏈路層代碼 層與層間通消息通信XMODEM協議沒規定層結構層間消息格式鏈路層與應用層間、鏈路層物理層間消息格式統規定: typedef struct { int len; /* 消息內容度即Message內容位元組數 */ char mType; /* 層間消息類型, */ char Message[MAX_ MESSAGE_LEN]; /* 消息內容, 由發送進程填寫 */ } MessageOfLayer; 考慮XMODEM數據幀一三二位元組定義量MAX_MESSAGE_LEN一三二位元組按OSI標准層間消息原語數據請求、數據指示、響應、證實四種類型給A發送數據B接收數據層間消息類型圖 陸: 單向數據傳送層間消息順序:①②③④ 消息一二承載實際數據數據幀消息三四傳送程應答幀表明數據已經確傳送必須說明發送數據證實消息三發物理層發送數據立即向層發證實消息 實際應用處理數據傳送所需要消息外需要定義些控制管理消息面具體說明層間消息類型作用 三.二 鏈路層物理層間介面 n 數據請求:該消息用於向物理層發送XMODEM幀數據包括一三二位元組文件數據幀NAK,ACKCAN單位元組信號幀等載軟體接收文件需要發送一三二位元組文件數據幀 n 數據證實:物理層收鏈路層數據請求幀送UART緩沖器等發送緩沖器空表明該位元組數據發送完向鏈路層發送證實消息鏈路層接收消息發送位元組實際物理層傳送連接證實消息由接收產能表明已經確接收數據表明已經發數據物理層協議般提供應答傳輸機制 n 數據指示:物理層接收緩沖器滿數據發送給鏈路層 除三消息外物理層應用層間二消息: n 啟電路:由鏈路層向物理層發物理層收該協議串口進行初始化 n 電路錯:由物理層向鏈路層發用於報告物理層數據傳送程錯誤 數據響應消息本應用使用 三.三 鏈路層應用層間介面 鏈路層應用層間數據傳輸消息二: n 數據塊指示:由鏈路層收XMODEM協議幀(一二吧位元組)向應用層發應用層收數據幀寫入flash memory(PC版本寫入文件) n 數據塊塊響應:應用層收XMODEM數據幀並寫入flash memory(PC版本寫入文件)向鏈路層發響應信號鏈路層收響應向文件發送發ACK信號 其管理控制消息定義三: n 協議啟:應用層通知鏈路層啟XMODEM協議 n 通信結束:鏈路層收EOT信號向應用層發應用層收消息轉入應用程序入口執行應用程序 n 通信止:鏈路層各種情況繼續進行XMODEM傳輸向應用層傳送該消息應用層收消息丟棄已經收數據發通信錯誤指示 四 層協議實現 四.一 協議OS平台 實現層協議使用非搶先式操作系統作軟體平台各層別作進程 四.二 應用層軟體實現 嵌入式系統載軟體接收代碼文件於協議作文件發送處理代碼編寫應用層任務接收鏈路層數據包根據收數據包先序寫入程序存儲器PC機模擬實現我數據存放緩沖區內完寫入文件使用windiff軟體發送文件進行比較判斷代碼否確 應用層進程初始化代碼作用: n 擦除程序存儲器所使用FLASH MEMORY(本例按二9F0一0編寫代碼) n 啟一0秒定器一0秒通知鏈路層啟XMODEM協議