<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > STC12C系列的協(xié)議分析

          STC12C系列的協(xié)議分析

          作者: 時間:2016-11-29 來源:網(wǎng)絡(luò) 收藏
          這個版本的協(xié)議和以前已經(jīng)有了比較大的改變,包括包頭等等。但是STC有一個千年不變的開啟幀:0x7F,在STC15系列的MCU,仍然使用著這個ISP的開啟幀。原因我不說大家也明白。

          那么進(jìn)入主題:STC12系列下載的幀格式:

          本文引用地址:http://www.ex-cimer.com/article/201611/323423.htm

          協(xié)議幀簡介:主要構(gòu)成如下

          Head

          Sign

          Reserved

          Length

          Frame

          Data

          Checksum

          Trail

          各個填充區(qū)詳細(xì)說明:

          名稱

          長度

          功能

          Head

          2-Byte

          包頭 (0×46,0xB9)

          Sign

          1-Byte

          標(biāo)識 (0x6A或0×68)

          Reserved

          1-Byte

          預(yù)留區(qū) (填充0×00)

          Length

          1-Byte

          (Head + Length + Frame+Data)的總長

          Frame

          1-Byte

          用以區(qū)分不同的幀

          Data

          0~0x8A Bytes

          數(shù)據(jù)

          Checksum

          2 Byte

          校驗(yàn)和

          Trail

          1 Byte

          包尾 (0×16)

          至于Cmd的協(xié)議應(yīng)答之類的:

          命令 說明 MCU回應(yīng)
          7F 引導(dǎo)MCU進(jìn)入ISP并測量時鐘 50 MCU選項(xiàng)信息

          50 設(shè)置MCU型號等 8F 應(yīng)答

          8F 新波特率測試 8F 測試應(yīng)答

          8E 正式修改波特率 84 修改波特率應(yīng)答

          84 文件容量,擦除芯片 00 應(yīng)答

          00 下載程序 00/30 應(yīng)答校驗(yàn)和,成功或失敗

          30 重新下載程序 00/30 應(yīng)答校驗(yàn)和

          69 型號等 8D 應(yīng)答

          8D 設(shè)置選項(xiàng) 50 應(yīng)答選項(xiàng)

          82 退出 重啟進(jìn)用戶程序

          至于交互過程,也算是簡單的,就是看你的設(shè)備反應(yīng)速度了。這就是為什么某些PL2303線下載老出錯的原因,不過我這里至少用的挺好。

          PC ->0x7f ->MCU

          MCU ->信息 ->PC

          PC -> 核對?MCU型號 -> MCU

          MCU ->波特率變更請求 ->PC

          PC ->波特率測試 ->MCU[此時,計算重載值切換波特率】

          MCU ->成功/無回應(yīng) -> PC

          PC ->波特率設(shè)置 ->MCU [切換到最低波特率上去

          MCU ->成功/無回應(yīng) ->PC [切換到數(shù)據(jù)波特率上去

          PC -> 擦除芯片 -> MCU

          MCU ->成功/無回應(yīng) ->PC

          PC -> 0x80個字節(jié)數(shù)據(jù) ->MCU

          MCU -> 校驗(yàn)碼 ->PC

          循環(huán)到文件結(jié)束

          PC ->設(shè)置?型號 ->MCU

          MCU ->成功/無回應(yīng) -> PC

          PC ->設(shè)置選項(xiàng) ->MCU

          MCU ->成功/無回應(yīng) -> PC

          PC ->編程結(jié)束 ->MCU

          校驗(yàn)和算法是將標(biāo)識到數(shù)據(jù)區(qū)的內(nèi)容統(tǒng)統(tǒng)加起來,取低十六位,看程序:

          01PUBLIC FUNCTION CheckSum(buff ASString, start ASInteger, endchr ASInteger) ASString返回兩個字
          02DIM i ASInteger
          03DIM chkSum ASLong
          04DIM lo ASByte
          05DIM hi ASByte
          06DIM tempStr ASString
          07chksum = 0
          08FOR i = start TO endchr
          09chksum = chksum + Asc(Mid(buff, i, 1))
          10NEXT
          11hi = Shr(chksum AND &HFF00, 8)
          12lo = chksum AND &H00FF
          13tempStr = Chr(hi) & Chr(lo)
          14RETURN tempStr
          15END

          關(guān)于STC12C5Ax系列的信息幀,這里有一張別人分析的圖:

          至于固件版本我這里測試的有:

          16.6I : 66 49
          26.2I : 62 49

          關(guān)于晶振速度的計算:

          如果是標(biāo)準(zhǔn)12M時鐘,1200Kps波特率,則計數(shù)值為1/1200*7 = 5833uS,數(shù)值也為5833。將八次技術(shù)求平均(假設(shè)為18 94=6292),則此時單片機(jī)時鐘頻率=6292*12M/5833 = 12.994MHz。


          上一頁 1 2 下一頁

          關(guān)鍵詞: STC12C系列協(xié)議分

          評論


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

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();