国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

MSP430單片機(jī)的BSL編程工具設(shè)計(jì)與應(yīng)用*

2015-07-02 00:17:24常國(guó)權(quán)張捐凈
關(guān)鍵詞:控件時(shí)序串口

常國(guó)權(quán),張捐凈

(安陽(yáng)工學(xué)院 計(jì)算機(jī)科學(xué)與信息工程學(xué)院,安陽(yáng) 455000)

?

MSP430單片機(jī)的BSL編程工具設(shè)計(jì)與應(yīng)用*

常國(guó)權(quán),張捐凈

(安陽(yáng)工學(xué)院 計(jì)算機(jī)科學(xué)與信息工程學(xué)院,安陽(yáng) 455000)

為了對(duì)燒斷熔絲的MSP430系列單片機(jī)進(jìn)行程序更新,采用USB轉(zhuǎn)串口芯片PL2303和VB6.0編程語(yǔ)言設(shè)計(jì)出了一款高性價(jià)比的BSL編程工具,給出了該編程工具的硬件和軟件設(shè)計(jì)的具體方案,并論述了設(shè)計(jì)中的要點(diǎn)。該BSL編程工具使用方便、操作簡(jiǎn)單、成本低廉,投入使用以后獲得了較好的效果。

MSP430單片機(jī); BSL; 編程工具; PL2303

引 言

美國(guó)德州儀器公司的MSP430系列單片機(jī)在智能儀器儀表、醫(yī)療電子、消費(fèi)電子等領(lǐng)域有著非常廣泛的應(yīng)用[1]。大部分MSP430系列單片機(jī)都具有非易失性Flash存儲(chǔ)器,用戶調(diào)試或更新Flash中程序的方式一般有兩種方法:JTAG和Bootstrap Loader[2](引導(dǎo)裝載程序,簡(jiǎn)稱BSL)。

MSP430系列單片機(jī)內(nèi)部集成了JTAG仿真調(diào)試模塊,并口轉(zhuǎn)換器就可以作為一個(gè)低成本的JTAG硬件仿真調(diào)試工具,然而,為了保護(hù)用戶程序代碼,往往產(chǎn)品開發(fā)完成之后必須要燒斷MSP430單片機(jī)內(nèi)部的熔絲,這就使得MSP430單片機(jī)無(wú)法再通過JTAG接口訪問CPU或者更新Flash中的用戶程序了,要想再次訪問或者更新Flash中的用戶程序就需要使用BSL接口。BSL接口也是對(duì)燒斷熔絲后的MSP430單片機(jī)進(jìn)行程序升級(jí)的唯一方法[3]。

MSP430系列單片機(jī)出廠時(shí)在特定的內(nèi)存空間固化了一段引導(dǎo)代碼,即BSL,通過在單片機(jī)特定引腳上加一個(gè)特定的時(shí)序就可進(jìn)入這段引導(dǎo)代碼,用戶就可以通過標(biāo)準(zhǔn)的異步串行口訪問單片機(jī)的內(nèi)部資源,如Flash、RAM等(讀操作需要驗(yàn)證密碼),這就為嵌入式應(yīng)用提供了方便的升級(jí)和維護(hù)方式。

采用USB轉(zhuǎn)串口芯片和VB6.0編程語(yǔ)言設(shè)計(jì)并實(shí)現(xiàn)了一種成本低廉、使用方便、操作簡(jiǎn)單的BSL編程工具,可以通過串口實(shí)現(xiàn)對(duì)MSP430系列單片機(jī)進(jìn)行擦除、編程、自動(dòng)下載文件、聲音提示以及自動(dòng)運(yùn)行代碼等功能。系統(tǒng)總體設(shè)計(jì)框圖如圖1所示。

圖1 系統(tǒng)總體設(shè)計(jì)框圖

1 系統(tǒng)硬件設(shè)計(jì)

該BSL編程工具的硬件是使用USB轉(zhuǎn)串口芯片PL2303設(shè)計(jì)的,具有使用方便、設(shè)計(jì)成本低等優(yōu)點(diǎn)。PL2303是Prolific公司生產(chǎn)的USB總線轉(zhuǎn)接芯片,具有全部調(diào)制解調(diào)器控制信號(hào),如TXD、RXD、DTR、RTS等,可實(shí)現(xiàn)USB轉(zhuǎn)3.3 V或5 V全雙工串口TTL電平。

PL2303芯片接入PC機(jī)后會(huì)產(chǎn)生一個(gè)虛擬的串口設(shè)備,使用VB6.0提供的MSComm串口控件進(jìn)行編程,即可控制TXD、RXD、DTR、RTS產(chǎn)生所需要的時(shí)序信號(hào)。盡管使用PC機(jī)的物理串口也可以實(shí)現(xiàn)同樣的功能,但并不是每臺(tái)PC機(jī)都有物理串口,USB轉(zhuǎn)串口芯片使得該編程工具省去了物理串口的限制,并可為MSP430單片機(jī)提供電源,因此,PL2303是移動(dòng)系統(tǒng)和嵌入式系統(tǒng)的理想選擇,其小封裝能夠嵌入到任何連接件和手持設(shè)備中[4]。

該編程工具將PL2303芯片的DTR、RTS引腳分別連接到MSP430系列單片機(jī)的RST、TCK(或者TEST)引腳,如果是帶有TEST引腳的MSP430單片機(jī),則應(yīng)用TEST引腳替換TCK引腳。TXD、RXD是串口發(fā)送、接收引腳,需要連接MSP430單片機(jī)對(duì)應(yīng)的BSL引腳,不同的單片機(jī)對(duì)應(yīng)的接收和發(fā)送引腳不完全一樣。PL2303芯片的第4個(gè)引腳VDD_325是用來(lái)決定控制信號(hào)邏輯電平的,MSP430系列單片機(jī)都是3.3 V工作電壓,因此,VDD_325應(yīng)該接3.3 V,以便于TXD、RXD、DTR和RTS產(chǎn)生3.3 V邏輯電平。AMS1117是用來(lái)將5 V電壓轉(zhuǎn)換為3.3 V電壓,除了給VDD_325提供電壓,也可以給外部的MSP430單片機(jī)提供3.3 V電源。系統(tǒng)硬件設(shè)計(jì)原理圖如圖2所示[5]。

圖2 系統(tǒng)硬件設(shè)計(jì)原理圖

2 系統(tǒng)軟件設(shè)計(jì)

BSL編程工具的軟件設(shè)計(jì)采用VB6.0來(lái)實(shí)現(xiàn),盡管使用VC++、Delphi等編程工具都可以實(shí)現(xiàn)該軟件的設(shè)計(jì),但選擇VB6.0具有更多的優(yōu)勢(shì),因?yàn)閂B是一種比較簡(jiǎn)單的事件驅(qū)動(dòng)編程語(yǔ)言,對(duì)初學(xué)者的要求較低。VB擁有圖形用戶界面和快速應(yīng)用程序開發(fā)系統(tǒng),使用其提供的組件完全可以完成該軟件的設(shè)計(jì)。

2.1 MSP430單片機(jī)BSL時(shí)序介紹

要使MSP430單片機(jī)進(jìn)入BSL復(fù)位向量,需要在單片機(jī)的RST和TCK(或者TEST)引腳施加一個(gè)特定的時(shí)序,MSP430單片機(jī)接到這個(gè)特定時(shí)序后,CPU的程序指針(PC)指向0x 0C00地址處,這是一段1 KB的ROM區(qū)(0x 0C00~0x 1000)。

在BSL程序開始執(zhí)行時(shí),TCK引腳已收到至少兩個(gè)負(fù)跳變,并且當(dāng)RST由低向高跳變時(shí)TCK保持低電平,此時(shí),MSP430單片機(jī)進(jìn)入BSL狀態(tài);如果是帶有TEST引腳的MSP430單片機(jī),則應(yīng)用TEST引腳替換TCK引腳,并且TEST引腳接收的到是至少兩個(gè)正跳變,并且當(dāng)RST由低向高跳變時(shí)TEST保持高電平。MSP430單片機(jī)BSL啟動(dòng)時(shí)序如圖3所示[6]。

圖3 MSP430單片機(jī)BSL啟動(dòng)時(shí)序圖

2.2 BSL的串口通信協(xié)議

MSP430單片機(jī)利用內(nèi)部定時(shí)器實(shí)現(xiàn)在特定的引腳模擬串口通信時(shí)序,大多數(shù)MSP430單片機(jī)的P1.1引腳作為BSL的發(fā)送端(即TXD),P2.2引腳作為BSL的接收端(即RXD),不同型號(hào)的單片機(jī)會(huì)有所不同[7]。

MSP430單片機(jī)的串口協(xié)議默認(rèn)采用:9 600的波特率,半雙工模式,1位起始位,8位數(shù)據(jù)位(最低位在前),1個(gè)偶校驗(yàn)位,1位停止位。握手是通過一個(gè)確認(rèn)字符進(jìn)行的,在發(fā)送任何命令之前,必須先發(fā)送一個(gè)值為80H的同步字符給BSL,它提供了BSL系統(tǒng)時(shí)間基準(zhǔn)。當(dāng)BSL接收到同步字符之后,會(huì)發(fā)送一個(gè)90H的字符以確認(rèn)成功接收。

BSL提供給用戶的命令主要分為兩類:一類命令需要驗(yàn)證密碼才能執(zhí)行,如訪問單片機(jī)Flash、RAM以及外設(shè)等操作;另一類命令無(wú)需驗(yàn)證密碼即可執(zhí)行,如整體擦除Flash、讀取BSL版本等。部分BSL命令數(shù)據(jù)幀格式如表1 所列[6]。

其中,從HDR到LH的8個(gè)字節(jié)是必須的,xx表示任意數(shù)據(jù);數(shù)據(jù)D1~Dn是可選的;CKL是校驗(yàn)和的低位,CKH是校驗(yàn)和的高位,這兩個(gè)字節(jié)是必需的;ACK確認(rèn)字節(jié)并不是每個(gè)命令都需要的。

表1 部分BSL命令數(shù)據(jù)幀格式

2.3 BSL軟件設(shè)計(jì)

進(jìn)行BSL軟件設(shè)計(jì),主要用到了VB6.0中的幾個(gè)關(guān)鍵控件,如MSComm、CommandDialog、ComboBox、Timer、TextBox、ProgressBar、CommandButton、CheckBox等標(biāo)準(zhǔn)控件。

該BSL編程軟件下載的程序文件格式為TI公司txt純文本格式,它使用“@”表示地址的開始,地址后面表示從該地址開始要存儲(chǔ)的數(shù)據(jù)內(nèi)容,從地址后每一行為16個(gè)字節(jié),每個(gè)字節(jié)使用十六進(jìn)制數(shù)表示,每?jī)蓚€(gè)字節(jié)之間用一個(gè)空格隔開。每遇到一個(gè)“@”字符就表示新地址的開始,地址后面同樣表示從該地址開始要存儲(chǔ)的數(shù)據(jù)內(nèi)容,文件最后以一個(gè)小寫的“q”字符加換行結(jié)束。根據(jù)TI-txt文件的格式,首先要使用CommandDialog控件打開要下載的文件,使用一定的算法分離出整個(gè)TI-txt文件中的多段起始地址以及每個(gè)起始地址所對(duì)應(yīng)的數(shù)據(jù)內(nèi)容,然后通過串口一步一步地發(fā)送給BSL并寫入到指定的地址段。BSL編程軟件對(duì)TI-txt文件的處理流程如圖4所示。

圖4 BSL編程軟件對(duì)TI-txt文件的處理流程圖

要通過串口實(shí)現(xiàn)上位機(jī)軟件和MSP430單片機(jī)的BSL進(jìn)行數(shù)據(jù)交換,最關(guān)鍵的一步就是先要使MSP430單片機(jī)進(jìn)入BSL狀態(tài)。而要想使MSP430單片機(jī)進(jìn)入BSL狀態(tài),必須要在RST和TCK(或者TEST)引腳施加一個(gè)特定的時(shí)序,通過使用MSComm的兩個(gè)屬性DTREnable和RTSEnable可以產(chǎn)生所需要的時(shí)序。DTREnable屬性是確定在通信過程中是否使用DTR(Data Terminal Ready)線。若DTREnable設(shè)置為True,則使用DTR線;若為False(缺省),則禁止DTR線。RTSEnable屬性和DTREnable屬性類似,RTSEnable屬性用于確定是否使用RTS(Request To Send)線。若RTSEnable設(shè)置為True,則使用RTS線;若為False(缺省),則不使用RTS線[8-9]。使用MSComm的這兩個(gè)屬性,可以在VB6.0中通過以下代碼使MSP430單片機(jī)進(jìn)入BSL狀態(tài)。

Private Sub BslConnectCommand_Click() '連接BSL,并進(jìn)入BSL狀態(tài)

Dim DTRLevel As Boolean

Dim RTSLevel As Boolean

If (DTRCheck.Value = 1) Then 'DTRCheck選中

DTRLevel = False

Else

DTRLevel = True

End If

If (RTSCheck.Value = 1) Then 'RTSCheck選中

RTSLevel = False

Else

RTSLevel = True

End If

MSComm.RTSEnable = Not (RTSLevel)

MSComm.DTREnable = DTRLevel

'DTRLevel為True,輸出低電平

MSComm.RTSEnable = RTSLevel

MSComm.RTSEnable = Not (RTSLevel)

MSComm.RTSEnable = RTSLevel

MSComm.DTREnable = Not (DTRLevel)

'DTRLevel為False,輸出高電平

MSComm.RTSEnable = Not (RTSLevel)

End Sub

其中,DTRCheck和RTSCheck這兩個(gè)控件非常有用,可以在不改變硬件的情況下使DTR和RTS輸出的邏輯電平反相,這使得該BSL上位機(jī)軟件既可以適用于有TCK引腳的單片機(jī),也可以適用于有TEST引腳的單片機(jī),大大增強(qiáng)了BSL軟件的靈活性。

使MSP430單片機(jī)進(jìn)入BSL狀態(tài)是關(guān)鍵的一步,打通了這一底層通信的關(guān)鍵環(huán)節(jié)之后,就可以一步一步地編寫調(diào)試其他各個(gè)軟件模塊了。MSP430單片機(jī)BSL編程軟件的設(shè)計(jì)流程圖和BSL編程軟件界面圖如圖5、6所示。

圖5 BSL編程軟件的設(shè)計(jì)流程圖

圖6 BSL編程軟件界面圖

結(jié) 語(yǔ)

[1] 沈建華.MSP430系列16位超低功耗單片機(jī)原理與實(shí)踐[M].北京:北京航空航天大學(xué)出版社,2008.

[2] Texas Instruments.MSP430 Memory Programming User's Guide,2013.

[3] 李智奇.MSP430系列超低功耗單片機(jī)原理與系統(tǒng)設(shè)計(jì)[M].西安:西安電子科技大學(xué)出版社,2008.

[4] Porlific Technology Inc.PL-2303 USB TO RS-232 Bridge Controller Product Datasheet,2011.

[5] 張偉.Protel99SE實(shí)用教程[M].北京:人民郵電出版社,2008.

[6] Texas Instruments Incorporated. MSP430 Programming Via the Bootstrap Loader(BSL) User's Guide,2014.

[7] Texas Instruments Incorporated.MSP430F241x,MSP430F261x Mixed Signal Microcontroller,2012.

[8] 丘李華.Visual Basic程序設(shè)計(jì)教程[M].北京:機(jī)械工業(yè)出版社,2011.

[9] 王定賢.基于VB的計(jì)算機(jī)與智能儀器串口通信[J].甘肅聯(lián)合大學(xué)學(xué)報(bào):自然科學(xué)版,2011,25(4).

常國(guó)權(quán)(碩士研究生),研究方向?yàn)榍度胧较到y(tǒng)技術(shù)應(yīng)用與開發(fā)。

Application of MSP430 Microcontroller BSL Programming Tools

Chang Guoquan,Zhang Juanjing

(Department of Computer Science and Information Engineering,Anyang Institute of Technology,Anyang 455000,China)

In order to solve the problem of MSP430 series microcontroller with blown fuse for program update,a BSL programming tool of high cost-effective is designed using PL2303 which is USB to serial port and VB6.0 programming language.The paper gives its specific solution of the hardware and software design,and discussed the key points of the design.This BSL programming tool has the advantages of convenient use,simple operation and low cost,and achieves good results after putting into use.

MSP430 microcontroller;BSL;programming tool;PL2303

《國(guó)產(chǎn)數(shù)控系統(tǒng)在車床企業(yè)應(yīng)用示范工程》國(guó)家科技重大專項(xiàng)子課題(項(xiàng)目編號(hào):2012ZX04011-012)。

TP368.2

A

士然

2014-12-19)

猜你喜歡
控件時(shí)序串口
時(shí)序坐標(biāo)
基于Sentinel-2時(shí)序NDVI的麥冬識(shí)別研究
淺談AB PLC串口跟RFID傳感器的通訊應(yīng)用
關(guān)于.net控件數(shù)組的探討
軟件(2018年7期)2018-08-13 09:44:42
一種毫米波放大器時(shí)序直流電源的設(shè)計(jì)
電子制作(2016年15期)2017-01-15 13:39:08
USB接口的多串口數(shù)據(jù)并行接收方法探索
基于藍(lán)牙串口適配器的GPS接收機(jī)與AutoCAD的實(shí)時(shí)無(wú)線通信
基于并行控制的FPGA多串口拓展實(shí)現(xiàn)
DPBUS時(shí)序及其設(shè)定方法
河南科技(2014年15期)2014-02-27 14:12:36
就這樣玩會(huì)VBA中常見的自定義控件
電腦迷(2012年24期)2012-04-29 00:44:03
商城县| 神农架林区| 鄂尔多斯市| 惠州市| 封开县| 邵阳市| 松原市| 彭阳县| 平乐县| 龙岩市| 平塘县| 固安县| 东安县| 滦南县| 宿松县| 盈江县| 普兰店市| 泽普县| 仙居县| 莒南县| 海丰县| 天等县| 富宁县| 融水| 龙胜| 南华县| 达州市| 泗阳县| 彰武县| 龙陵县| 临清市| 怀柔区| 金堂县| 康平县| 华蓥市| 无极县| 章丘市| 奉节县| 东城区| 稷山县| 瑞金市|