国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

基于MC9S08JM60的新型編程調(diào)試器提高通信速度

電子設(shè)計(jì) ? 來源:郭婷 ? 作者:電子設(shè)計(jì) ? 2019-05-08 08:02 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

引 言

目前市場上影響力較大的針對(duì)S12的集成開發(fā)環(huán)境CodeWarrior HCS12,功能完善、性能穩(wěn)定,但是價(jià)格昂貴,不利于嵌入式領(lǐng)域的教學(xué)和開發(fā)。在國內(nèi)由清華大學(xué)開發(fā)的S12BDM調(diào)試頭,目前可支持的目標(biāo)CPU外部晶振頻率不高于19 MHz,它的軟件部分由飛思卡爾半導(dǎo)體公司提供。蘇州大學(xué)2005年研制了針對(duì)S12系列MCU編程調(diào)試器,采用MC68HC908JB8(以下簡稱 JB8)作為編程調(diào)試器芯片;但是隨著芯片制造技術(shù)的更新,S12系列MCU的品種越來越多,性能越來越好,典型的S12系列MCU總線頻率為25 MHz,而JB8的總線頻率只有3 MHz,可適用目標(biāo)芯片的型號(hào)有限,且JB8只有256字節(jié)的RAM空間,可用于接收數(shù)據(jù)的緩存太小,影響通信速度。因此更加迫切地需要一款功能更加強(qiáng)大并且具有通用性的編程調(diào)試器來滿足S12系列MCU的需求。

本文在分析了S12系列MCU編程調(diào)試器MC68HC908JB8的基礎(chǔ)上,設(shè)計(jì)了基于MC9S08JM60(以下簡稱JM60)的新型編程調(diào)式器,主要解決JB8在通信速率上存在的不足和在通用性方面存在的問題。

1 總體概述

本文所說的編程系統(tǒng)包括編程調(diào)試器和PC方的通信,以及編程調(diào)試器和目標(biāo)芯片的通信。圖1是編程系統(tǒng)的基本架構(gòu)。在編程系統(tǒng)中,JM60通過USB2.O和PC方進(jìn)行交互,接收來自PC方的命令并執(zhí)行相應(yīng)的操作,然后通過BDM接口將命令和數(shù)據(jù)發(fā)送到目標(biāo)芯片,完成對(duì)目標(biāo)芯片的操作。

基于MC9S08JM60的新型編程調(diào)試器提高通信速度

BDM是飛思卡爾半導(dǎo)體公司推出的一種單線調(diào)試方式。圖2是BDM接口引腳圖,所有命令和參數(shù)均通過BKGD專用引腳進(jìn)行傳輸,不占用其他任何資源;而且 BDM子模塊獨(dú)立于CPU,有獨(dú)立的狀態(tài)機(jī)來處理單線接口。與通常的開發(fā)手段相比,BDM子模塊能利用CPU的空閑周期與CPU打交道,不需要停止處理器即可訪問存儲(chǔ)器資源。

基于MC9S08JM60的新型編程調(diào)試器提高通信速度

本編程系統(tǒng)中,作為編程調(diào)試器芯片的JM60所擁有的USB2.O全速設(shè)備較之串口和USBl.1,它和PC方通信速率非???。JM60可達(dá)24 MHz的總線頻率以及充足的RAM空間使得通信流程可以得到進(jìn)一步改進(jìn);同時(shí),JM60的高總線頻率也解決了以往采用JB8作為編程調(diào)試器芯片但由于 JB8自身總線頻率低而限制目標(biāo)芯片通信頻率的瓶頸,使得編程系統(tǒng)的通用性得到提高。

2 通信系統(tǒng)的改進(jìn)

2.1 通信流程的改進(jìn)

編程系統(tǒng)的通信由PC機(jī)、編程調(diào)試器和目標(biāo)芯片的交互來完成,因而編程系統(tǒng)通信流程的高效與否直接影響著整個(gè)編程系統(tǒng)的通信速率。編程系統(tǒng)的通信過程如下:

①PC發(fā)送進(jìn)入BDM命令,目標(biāo)芯片進(jìn)入BDM模式;

②PC發(fā)送完全擦除命令,擦除目標(biāo)芯片F(xiàn)lash并進(jìn)行空白校驗(yàn),返回校驗(yàn)碼;

③PC發(fā)送命令將寫入子程序的目標(biāo)代碼發(fā)送到目標(biāo)芯片內(nèi)存中,寫入子程序的功能是將存放在目標(biāo)芯片內(nèi)存上的用戶目標(biāo)代碼寫入Flash中;

④PC分析S19文件,提取需要發(fā)送的目標(biāo)代碼,以512字節(jié)組合成一頁,分頁發(fā)送到目標(biāo)芯片內(nèi)存中,然后運(yùn)行已發(fā)送目標(biāo)芯片中的寫入子程序,將用戶目標(biāo)代碼寫入目標(biāo)芯片F(xiàn)lash中;

⑤PC判斷是否需要發(fā)送下一頁,并接收校驗(yàn)碼判斷一頁數(shù)據(jù)發(fā)送是否正確。

PC發(fā)送一頁數(shù)據(jù)到目標(biāo)芯片內(nèi)存之前,先將數(shù)據(jù)發(fā)送到編程調(diào)試器內(nèi)存,和一次向S12系列芯片F(xiàn)lash寫入512字節(jié)相比較。JB8的RAM只有有限的 256字節(jié),并且堆棧也在RAM區(qū)域,可用于接收一頁數(shù)據(jù)的RAM緩存太小,因而每次寫入的數(shù)據(jù)量就會(huì)受到限制,要分多次寫入。這就增加了PC和編程調(diào)試器之間的通信次數(shù)以及編程調(diào)試器和目標(biāo)芯片的通信次數(shù),從而影響了編程的速度。圖3中,JB8以串行的方式接收和發(fā)送數(shù)據(jù),先從PC方接收一頁128字節(jié)用戶目標(biāo)代碼(1,3,5,7過程),然后將數(shù)據(jù)發(fā)送到目標(biāo)芯片內(nèi)存(2,4,6,8過程)。經(jīng)過4次的接收之后,目標(biāo)芯片將RAM空間的512字節(jié)數(shù)據(jù)一次寫入Flash空間,返回校驗(yàn)碼。

基于MC9S08JM60的新型編程調(diào)試器提高通信速度

而JM60作為編程調(diào)試器則擁有4 KB的RAM,可以直接開辟512字節(jié)作為緩沖。在整個(gè)編程系統(tǒng)通信流程的設(shè)計(jì)上,就可以借鑒指令流水線操作的思想,充分考慮可作預(yù)取的操作,利用編程調(diào)試器和目標(biāo)芯片之間通信的時(shí)間完成PC方單獨(dú)的操作,以及利用目標(biāo)芯片自身進(jìn)行操作的時(shí)間來完成PC方和編程調(diào)試器之間的操作,提高編程系統(tǒng)的運(yùn)行速率,盡量減少空等待操作。

基于MC9S08JM60的新型編程調(diào)試器提高通信速度

在圖4所示的以JM60作為編程調(diào)試器的編程系統(tǒng)通信流程中,首先PC發(fā)送第1頁用戶目標(biāo)代碼到JM60內(nèi)存(過程1),然后發(fā)送到目標(biāo)芯片內(nèi)存(過程 2),目標(biāo)芯片執(zhí)行寫入子程序?qū)?shù)據(jù)寫入Flash。寫入子程序執(zhí)行過程中,字寫入命令時(shí)間t=9×(1÷fNMVOP)+25×(1÷fbus)。 fNMVOP指Flash操作頻率,fbus指總線頻率。S12系列芯片F(xiàn)lash的操作頻率范圍限制在150~200 kHz,取fNMVOP=200 kHz,fbus=40 MHz,計(jì)算得1個(gè)字寫入時(shí)間在最小情況下為t=0.045 625 ms,寫入512字節(jié)需要時(shí)間為11.68 ms,而PC發(fā)送1頁數(shù)據(jù)的時(shí)間為512×8÷12Mbps=0.341 ms。因此PC和JM60可以利用目標(biāo)芯片寫入1頁數(shù)據(jù)的時(shí)間進(jìn)行交互,將下一頁數(shù)據(jù)提前發(fā)送到JM60,完成從PC→JM60內(nèi)存,如圖5所示。 JM60和目標(biāo)芯片也可以在PC對(duì)前一頁數(shù)據(jù)進(jìn)行校驗(yàn)的同時(shí),將1頁數(shù)據(jù)從JM60發(fā)送到目標(biāo)芯片,如圖6所示。

在實(shí)現(xiàn)以上思想的同時(shí)也充分考慮了寫入過程出錯(cuò)的情況,如圖4在JM60內(nèi)存區(qū)域開辟了可存放2頁數(shù)據(jù)的緩沖區(qū)用于接收用戶目標(biāo)代碼。若前一頁數(shù)據(jù)寫入錯(cuò)誤,則將這頁數(shù)據(jù)在Flash的塊寫入首地址傳遞給塊擦除程序,重新進(jìn)行擦除,等待當(dāng)前頁發(fā)送完畢,作為下一頁數(shù)據(jù)參與整個(gè)流程進(jìn)行寫入。

2.2 通信子程序的改進(jìn)

2.2.1 優(yōu)化通信子程序代碼

通信流程的改進(jìn)提高了整個(gè)編程系統(tǒng)的通信速率。進(jìn)一步分析編程系統(tǒng),從JM60發(fā)送數(shù)據(jù)到目標(biāo)芯片,內(nèi)存需要的時(shí)間在整個(gè)程序下載過程中占用比例比較大;而在1位發(fā)送過程中,如圖7所示,從位開始時(shí)刻到目標(biāo)芯片讀取時(shí)刻的周期間隔是固定的10~13個(gè)目標(biāo)周期,但位與位之間的發(fā)送存在時(shí)隙。

基于MC9S08JM60的新型編程調(diào)試器提高通信速度

在原有編程系統(tǒng)的字節(jié)發(fā)送代碼中,發(fā)送位1和位0是兩個(gè)單獨(dú)的子程序,需要通過判斷來分別調(diào)用兩個(gè)子程序。所使用的BCC、JSR、BRA都是周期較長的指令,且每發(fā)送1位就調(diào)用1次JSR指令,就有一次RTS指令返回,需要周期較多。在改進(jìn)編程系統(tǒng)的字節(jié)發(fā)送代碼中,將位1和位0的發(fā)送代碼很好地結(jié)合在 1個(gè)子程序之內(nèi),縮短了位與位之間發(fā)送的時(shí)隙。

編程系統(tǒng)通過BDM硬件命令WRITE_WORD發(fā)送1個(gè)字,需要調(diào)用5次字節(jié)發(fā)送程序。發(fā)送的5字節(jié)分別是1字節(jié)的命令操作碼、2字節(jié)的內(nèi)存地址、2字節(jié)的數(shù)據(jù),同時(shí)硬件命令WRTE_WORD的完成還需要延遲150個(gè)編程調(diào)試器時(shí)鐘周期。所以假如從編程調(diào)試器發(fā)送100 KB的數(shù)據(jù)到目標(biāo)芯片內(nèi)存,其所需要花費(fèi)的時(shí)間計(jì)算如下:

在JB8的編程系統(tǒng)中,發(fā)送1個(gè)字節(jié)的周期為:2+(1+3+5+4+4+4+3+3+4+7)×8+4=310,100 KB的數(shù)據(jù)需要(100×1024÷2)個(gè)字×(5×310+150)個(gè)周期÷(3×106)=29.01 s。

在改進(jìn)的編程系統(tǒng)中,發(fā)送1個(gè)字節(jié)的周期為:2+2+4+3+1+1+2+4+(1+3+6+88)×8+2+4=809,100 KB的數(shù)據(jù)需要(100×1024÷2)個(gè)字×(5×809+150)個(gè)周期÷(24×105)=8.95 s。

而JM60緩存中的數(shù)據(jù)是以連續(xù)存放的形式寫入目標(biāo)芯片內(nèi)存的,因此可以選用BDM固件命令WRITE_NEXT,每次執(zhí)行命令時(shí)寄存器X的值會(huì)先自動(dòng)加 2,然后將1個(gè)字寫入到X所指向的地址。所以只需要在寫入開始時(shí),對(duì)寄存器X進(jìn)行一次地址賦值操作,將目標(biāo)芯片內(nèi)存地址減2處的地址值賦給X即可,后續(xù)數(shù)據(jù)可以直接調(diào)用WRITE_NEXT命令寫入,不需要再發(fā)送地址信息。采用WRITE_NEXT寫1個(gè)字需要發(fā)送3個(gè)字節(jié)(1個(gè)字節(jié)的命令操作碼、2個(gè)字節(jié)的數(shù)據(jù)),它的完成需要延遲32個(gè)編程調(diào)試器時(shí)鐘周期。因而從編程調(diào)試器發(fā)送100 KB的數(shù)據(jù)到目標(biāo)芯片內(nèi)存需要花費(fèi)的時(shí)間計(jì)算如下:

(100×1024÷2)個(gè)字×(3×809+32)個(gè)周期÷(24×106)=5.25 s

改進(jìn)后的編程系統(tǒng)在編程調(diào)試器內(nèi)存與目標(biāo)芯片內(nèi)存的數(shù)據(jù)通信速度上提高了5.5倍,大大提高了編程調(diào)試器的工作效率。

2.2.2 編寫目標(biāo)芯片接收程序

優(yōu)化通信子程序代碼之后,從編程調(diào)試器內(nèi)存向目標(biāo)芯片內(nèi)存發(fā)送數(shù)據(jù)的時(shí)間大大減少,但是使用BDM命令,除了發(fā)送2個(gè)字節(jié)的用戶數(shù)據(jù)之外,還需要發(fā)送額外的字節(jié),并且命令的完成都需要較長的延遲時(shí)間。由于BDM采用單線引腳串行通信,因此可以自己編寫一段模擬BDM串行通信的程序,目標(biāo)芯片只從編程調(diào)試器接收用戶目標(biāo)代碼,提高通信速度。

另外將JM60的引腳PTBD.O與目標(biāo)芯片PTA.0引腳相連來傳送數(shù)據(jù),以便數(shù)據(jù)通信過程不影響B(tài)KGD引腳。過程如下:

①按照編程調(diào)試器發(fā)送1位時(shí)序,在編程調(diào)試器方編寫以PTBD.0為發(fā)送引腳的字節(jié)發(fā)送代碼;

②按照目標(biāo)芯片接收1位的過程,編寫目標(biāo)芯片以PTA.0為接收引腳的字節(jié)接收代碼,進(jìn)而編寫好目標(biāo)芯片接收程序;

③將自定義的目標(biāo)芯片接收程序編譯成目標(biāo)代碼,通過基本的BDM命令發(fā)送到目標(biāo)芯片內(nèi)存;

④執(zhí)行目標(biāo)芯片中自定義的接收程序,將接收到的字節(jié)寫入目標(biāo)芯片指定的內(nèi)存空間。

由于目標(biāo)芯片的接收程序是自己定義的,因此編程調(diào)試器不需要發(fā)送操作碼與地址信息,也無需等待命令完成延遲時(shí)間。自定義的目標(biāo)芯片接收程序代碼量少于50字節(jié),這部分時(shí)間很短。因而假如從編程調(diào)試器發(fā)送100KB的數(shù)據(jù)到目標(biāo)芯片內(nèi)存,需要花費(fèi)的時(shí)間計(jì)算如下:

(100×1024)個(gè)字節(jié)×809個(gè)周期÷(24×106)=3.45 s

使用自定義目標(biāo)芯片接收程序,在原有系統(tǒng)編程調(diào)試器內(nèi)存與目標(biāo)芯片內(nèi)存的數(shù)據(jù)通信速度上提高了8倍多。

3 編程系統(tǒng)的通用性設(shè)計(jì)

編程系統(tǒng)的通用性在于兩點(diǎn):一是可以根據(jù)不同型號(hào)的目標(biāo)芯片獲取相應(yīng)的MCU參數(shù)進(jìn)行操作;二是可以根據(jù)不同型號(hào)MCU的總線頻率調(diào)用相應(yīng)的發(fā)送接收代碼。

3.1 MCU信息的存儲(chǔ)

S12系列MCU有很多型號(hào),而且未來還會(huì)推出更多新型號(hào)。表1給出了數(shù)據(jù)庫中MCU的信息。不同型號(hào)MCU屬性參數(shù)不同,包括內(nèi)部RAM及Flash的大小和起始地址。這些參數(shù)在對(duì)目標(biāo)芯片進(jìn)行擦除、寫入及調(diào)試操作時(shí)極為重要。為了便于通用性方面的設(shè)計(jì),在PC方數(shù)據(jù)庫中保存了每款MCU的相關(guān)信息,在用戶建立工程的時(shí)候就可以獲取這些字段信息,對(duì)目標(biāo)芯片進(jìn)行正確的操作。

基于MC9S08JM60的新型編程調(diào)試器提高通信速度

2.2 通信子程序的改進(jìn)

2.2.1 優(yōu)化通信子程序代碼

通信流程的改進(jìn)提高了整個(gè)編程系統(tǒng)的通信速率。進(jìn)一步分析編程系統(tǒng),從JM60發(fā)送數(shù)據(jù)到目標(biāo)芯片,內(nèi)存需要的時(shí)間在整個(gè)程序下載過程中占用比例比較大;而在1位發(fā)送過程中,如圖7所示,從位開始時(shí)刻到目標(biāo)芯片讀取時(shí)刻的周期間隔是固定的10~13個(gè)目標(biāo)周期,但位與位之間的發(fā)送存在時(shí)隙。

在原有編程系統(tǒng)的字節(jié)發(fā)送代碼中,發(fā)送位1和位0是兩個(gè)單獨(dú)的子程序,需要通過判斷來分別調(diào)用兩個(gè)子程序。所使用的BCC、JSR、BRA都是周期較長的指令,且每發(fā)送1位就調(diào)用1次JSR指令,就有一次RTS指令返回,需要周期較多。在改進(jìn)編程系統(tǒng)的字節(jié)發(fā)送代碼中,將位1和位0的發(fā)送代碼很好地結(jié)合在 1個(gè)子程序之內(nèi),縮短了位與位之間發(fā)送的時(shí)隙。

編程系統(tǒng)通過BDM硬件命令WRITE_WORD發(fā)送1個(gè)字,需要調(diào)用5次字節(jié)發(fā)送程序。發(fā)送的5字節(jié)分別是1字節(jié)的命令操作碼、2字節(jié)的內(nèi)存地址、2字節(jié)的數(shù)據(jù),同時(shí)硬件命令WRTE_WORD的完成還需要延遲150個(gè)編程調(diào)試器時(shí)鐘周期。所以假如從編程調(diào)試器發(fā)送100 KB的數(shù)據(jù)到目標(biāo)芯片內(nèi)存,其所需要花費(fèi)的時(shí)間計(jì)算如下:

在JB8的編程系統(tǒng)中,發(fā)送1個(gè)字節(jié)的周期為:2+(1+3+5+4+4+4+3+3+4+7)×8+4=310,100 KB的數(shù)據(jù)需要(100×1024÷2)個(gè)字×(5×310+150)個(gè)周期÷(3×106)=29.01 s。

在改進(jìn)的編程系統(tǒng)中,發(fā)送1個(gè)字節(jié)的周期為:2+2+4+3+1+1+2+4+(1+3+6+88)×8+2+4=809,100 KB的數(shù)據(jù)需要(100×1024÷2)個(gè)字×(5×809+150)個(gè)周期÷(24×105)=8.95 s。

而JM60緩存中的數(shù)據(jù)是以連續(xù)存放的形式寫入目標(biāo)芯片內(nèi)存的,因此可以選用BDM固件命令WRITE_NEXT,每次執(zhí)行命令時(shí)寄存器X的值會(huì)先自動(dòng)加 2,然后將1個(gè)字寫入到X所指向的地址。所以只需要在寫入開始時(shí),對(duì)寄存器X進(jìn)行一次地址賦值操作,將目標(biāo)芯片內(nèi)存地址減2處的地址值賦給X即可,后續(xù)數(shù)據(jù)可以直接調(diào)用WRITE_NEXT命令寫入,不需要再發(fā)送地址信息。采用WRITE_NEXT寫1個(gè)字需要發(fā)送3個(gè)字節(jié)(1個(gè)字節(jié)的命令操作碼、2個(gè)字節(jié)的數(shù)據(jù)),它的完成需要延遲32個(gè)編程調(diào)試器時(shí)鐘周期。因而從編程調(diào)試器發(fā)送100 KB的數(shù)據(jù)到目標(biāo)芯片內(nèi)存需要花費(fèi)的時(shí)間計(jì)算如下:

(100×1024÷2)個(gè)字×(3×809+32)個(gè)周期÷(24×106)=5.25 s

改進(jìn)后的編程系統(tǒng)在編程調(diào)試器內(nèi)存與目標(biāo)芯片內(nèi)存的數(shù)據(jù)通信速度上提高了5.5倍,大大提高了編程調(diào)試器的工作效率。

2.2.2 編寫目標(biāo)芯片接收程序

優(yōu)化通信子程序代碼之后,從編程調(diào)試器內(nèi)存向目標(biāo)芯片內(nèi)存發(fā)送數(shù)據(jù)的時(shí)間大大減少,但是使用BDM命令,除了發(fā)送2個(gè)字節(jié)的用戶數(shù)據(jù)之外,還需要發(fā)送額外的字節(jié),并且命令的完成都需要較長的延遲時(shí)間。由于BDM采用單線引腳串行通信,因此可以自己編寫一段模擬BDM串行通信的程序,目標(biāo)芯片只從編程調(diào)試器接收用戶目標(biāo)代碼,提高通信速度。

另外將JM60的引腳PTBD.O與目標(biāo)芯片PTA.0引腳相連來傳送數(shù)據(jù),以便數(shù)據(jù)通信過程不影響B(tài)KGD引腳。過程如下:

①按照編程調(diào)試器發(fā)送1位時(shí)序,在編程調(diào)試器方編寫以PTBD.0為發(fā)送引腳的字節(jié)發(fā)送代碼;

②按照目標(biāo)芯片接收1位的過程,編寫目標(biāo)芯片以PTA.0為接收引腳的字節(jié)接收代碼,進(jìn)而編寫好目標(biāo)芯片接收程序;

③將自定義的目標(biāo)芯片接收程序編譯成目標(biāo)代碼,通過基本的BDM命令發(fā)送到目標(biāo)芯片內(nèi)存;

④執(zhí)行目標(biāo)芯片中自定義的接收程序,將接收到的字節(jié)寫入目標(biāo)芯片指定的內(nèi)存空間。

由于目標(biāo)芯片的接收程序是自己定義的,因此編程調(diào)試器不需要發(fā)送操作碼與地址信息,也無需等待命令完成延遲時(shí)間。自定義的目標(biāo)芯片接收程序代碼量少于50字節(jié),這部分時(shí)間很短。因而假如從編程調(diào)試器發(fā)送100KB的數(shù)據(jù)到目標(biāo)芯片內(nèi)存,需要花費(fèi)的時(shí)間計(jì)算如下:

(100×1024)個(gè)字節(jié)×809個(gè)周期÷(24×106)=3.45 s

使用自定義目標(biāo)芯片接收程序,在原有系統(tǒng)編程調(diào)試器內(nèi)存與目標(biāo)芯片內(nèi)存的數(shù)據(jù)通信速度上提高了8倍多。

3 編程系統(tǒng)的通用性設(shè)計(jì)

編程系統(tǒng)的通用性在于兩點(diǎn):一是可以根據(jù)不同型號(hào)的目標(biāo)芯片獲取相應(yīng)的MCU參數(shù)進(jìn)行操作;二是可以根據(jù)不同型號(hào)MCU的總線頻率調(diào)用相應(yīng)的發(fā)送接收代碼。

3.1 MCU信息的存儲(chǔ)

S12系列MCU有很多型號(hào),而且未來還會(huì)推出更多新型號(hào)。表1給出了數(shù)據(jù)庫中MCU的信息。不同型號(hào)MCU屬性參數(shù)不同,包括內(nèi)部RAM及Flash的大小和起始地址。這些參數(shù)在對(duì)目標(biāo)芯片進(jìn)行擦除、寫入及調(diào)試操作時(shí)極為重要。為了便于通用性方面的設(shè)計(jì),在PC方數(shù)據(jù)庫中保存了每款MCU的相關(guān)信息,在用戶建立工程的時(shí)候就可以獲取這些字段信息,對(duì)目標(biāo)芯片進(jìn)行正確的操作。

3.2 目標(biāo)芯片總線頻率的測定

不同型號(hào)的MCU總線頻率不一樣,因此編程系統(tǒng)的通用性還在于能使編程調(diào)試器自動(dòng)獲取目標(biāo)MCU的通信頻率,使之適應(yīng)不同型號(hào)的MCU。

在HCS12中有一條比較特殊的BDM指令SYNC,它用于探測目標(biāo)MCU的BDM接口的通信頻率。該指令沒有具體的操作碼,因此不要求知道具體的目標(biāo)芯片BDM通信頻率。表2給出了使用SYNC指令探測目標(biāo)芯片BDM通信頻率的過程。

編程調(diào)試器是通過拉低至少128個(gè)目標(biāo)芯片時(shí)鐘周期來請(qǐng)求SYNC指令的,為了能夠測量所有的S12系列芯片BDM通信頻率,需要設(shè)置一個(gè)缺省計(jì)時(shí)參數(shù)。當(dāng)目標(biāo)芯片總線頻率低于1 MHz的時(shí)候,F(xiàn)lash的擦除寫入操作不能正常運(yùn)行,因此可以設(shè)置目標(biāo)芯片的最低BDM接口頻率為1 MHz。128個(gè)周期時(shí)長為128÷1 MHz=128μs。在這個(gè)延時(shí)時(shí)間內(nèi),可以向S12系列芯片成功請(qǐng)求SYNC指令。下面給出了測試目標(biāo)芯片通信頻率的代碼。

基于MC9S08JM60的新型編程調(diào)試器提高通信速度

基于MC9S08JM60的新型編程調(diào)試器提高通信速度

陰影部分是JM60在目標(biāo)芯片發(fā)送128個(gè)周期低電平的時(shí)間所做的操作,花費(fèi)的指令周期為count=5+1+6×A(寄存器A的計(jì)數(shù)次數(shù)),目標(biāo)芯片的通信頻率就可以通過公式fBDM=128×fbus÷count計(jì)算得到。編程調(diào)試器只需要根據(jù)計(jì)算得到的目標(biāo)芯片的通信頻率,調(diào)用在編程調(diào)試器方編寫的針對(duì)不同通信頻率段的收發(fā)子程序,就可以實(shí)現(xiàn)和不同型號(hào)目標(biāo)芯片的正確通信。

結(jié) 語

編程系統(tǒng)的通信速率和通用性是衡量編程調(diào)試器性能的重要指標(biāo)。在實(shí)際應(yīng)用中,用戶需要不斷地修改、調(diào)試程序,程序的下載操作會(huì)頻繁發(fā)生,因此減少數(shù)據(jù)的通信時(shí)間,提高用戶目標(biāo)代碼的寫入速度顯得尤為重要。本文針對(duì)S12新型編程系統(tǒng)的設(shè)計(jì)思想已經(jīng)應(yīng)用于SD-Pro-grammer For S12 V2中,通信速度提高了5倍多,能適應(yīng)當(dāng)前S12系列所有的MCU,對(duì)于新款MCU可以實(shí)現(xiàn)快速支持。文中給出的編程系統(tǒng)中提高通信速度的設(shè)計(jì)方法對(duì)類似于嵌入式系統(tǒng)的應(yīng)用開發(fā)也有著很好的借鑒作用。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 芯片
    +關(guān)注

    關(guān)注

    463

    文章

    54010

    瀏覽量

    466045
  • 半導(dǎo)體
    +關(guān)注

    關(guān)注

    339

    文章

    30737

    瀏覽量

    264114
  • 調(diào)試器
    +關(guān)注

    關(guān)注

    1

    文章

    328

    瀏覽量

    25089
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    MC9S08DZ60CLC

    MC9S08DZ60CLC是飛思卡爾針對(duì)汽車和工業(yè)市場,推出業(yè)界首款內(nèi)置控制局域網(wǎng)(CAN)接口、電可擦除可編程只讀存儲(chǔ)器(EEPROM)和片上仿真/調(diào)試工具的8位微控制
    發(fā)表于 07-30 17:35

    S9S08DZ60F1MLF

    S9S08DZ60F1MLF是飛思卡爾針對(duì)汽車和工業(yè)市場,推出業(yè)界首款內(nèi)置控制局域網(wǎng)(CAN)接口、電可擦除可編程只讀存儲(chǔ)器(EEPROM)和片上仿真/調(diào)試工具的8位微控制
    發(fā)表于 07-30 17:36

    MC9S08JM60 Bootloader資料

    MC9S08JM60 USB Bootloader應(yīng)用
    發(fā)表于 07-09 15:19

    用于MC9S08JM60 S08微控制的StarterTRAK USB開發(fā)系統(tǒng)

    TRK-USB-MPC5602P,用于MC9S08JM60 S08微控制的StarterTRAK USB開發(fā)系統(tǒng)。 StarterTRAK USB套件(TRK-USB-MPC5602P)旨在讓您
    發(fā)表于 04-10 06:49

    MC9S08JM16血糖監(jiān)視儀解決方案

    MC9S08JM16主要特性8位HCS08中央處理(CPU) 48MHz HCS08 CPU 24MHz內(nèi)部總線頻率 帶有增強(qiáng)型BGND指令的HC
    發(fā)表于 07-18 06:21

    基于MC9S08JM60 MCU的觸摸傳感評(píng)估板

    TSSEVB,基于MC9S08JM60 MCU的觸摸傳感評(píng)估板。觸摸感應(yīng)軟件原語和開發(fā)環(huán)境,請(qǐng)參閱Touch Sensing Software API參考手冊(cè)。 TSSEVB包括S08系列8位
    發(fā)表于 05-25 09:11

    具有I/O功能的用于MC9S08DZ60微控制

    用于MC9S08DZ60微控制的SEVB9S08DZ60,S08D系列評(píng)估板。 SEVB9S08DZ60評(píng)估板允許用戶使用擴(kuò)展的I / O
    發(fā)表于 06-05 15:07

    如何設(shè)計(jì)一款基于MC9S08JM60新型編程調(diào)式?

    本文在分析了S12系列MCU編程調(diào)試器MC68HC908JB8的基礎(chǔ)上,設(shè)計(jì)了基于MC9S08JM60(以下簡稱
    發(fā)表于 04-28 06:48

    MC9S08JM60,8位USB微控制

    8位MC9S08JM60器件進(jìn)一步擴(kuò)展了飛思卡爾的8位嵌入式USB控制產(chǎn)品系列,它具有高達(dá)60 K字節(jié)的閃存,全速USB 2.0設(shè)備控制,和一個(gè)12通道的12位模數(shù)轉(zhuǎn)換
    發(fā)表于 04-18 20:42 ?27次下載

    MC9S08JM60,MC9S08JM32,pdf,data

    MC9S08JM60 series MCUs are members of the low-cost, high-performance HCS08 Family of 8-bit
    發(fā)表于 04-20 09:43 ?30次下載

    MC9S08AW60,pdf datasheet

    The MC9S08AW60, MC9S08AW48, MC9S08AW32, and MC9S08AW16 are members of the low-cost,high-perf
    發(fā)表于 05-11 15:38 ?101次下載
    <b class='flag-5'>MC9S08AW60</b>,pdf datasheet

    MC9S08JM60開發(fā)USB設(shè)備模塊深度理解

    MC9S08JM60 是Freescale Flexis 系列微控制的組成部分。Flexis 系列微控制是Freescale 控制連續(xù)性的連接點(diǎn),它使得8 位和32 位兼容成為現(xiàn)
    發(fā)表于 09-19 14:15 ?63次下載
    <b class='flag-5'>MC9S08JM60</b>開發(fā)USB設(shè)備模塊深度理解

    飛思卡爾8位單片機(jī)MC9S08JM60開發(fā)板實(shí)踐教程

    飛思卡爾8位單片機(jī)MC9S08JM60開發(fā)板實(shí)踐教程
    發(fā)表于 06-21 17:56 ?30次下載

    MC9RS08KA和 MC9S08JM60在醫(yī)學(xué)上的應(yīng)用:飛思卡爾心律監(jiān)護(hù)

    由Jose Fernandez醫(yī)學(xué)博士演示采用MC9RS08KA和 MC9S08JM60的飛思卡爾心律監(jiān)護(hù)
    的頭像 發(fā)表于 06-21 11:49 ?4604次閱讀

    MC9S08DZ60數(shù)據(jù)手冊(cè)

    mc9s08dz60原版數(shù)據(jù)手冊(cè)免費(fèi)下載。
    發(fā)表于 01-29 09:39 ?4次下載