您的位置 首页 主动

MSP430单片机的BSL编程东西规划与使用

摘要:为了对烧断熔丝的MSP430系列单片机进行程序更新,采用USB转串口芯片PL2303和VB6.0编程语言设计出了一款高性价比的BSL编程工具,给出了该编程工具的硬件和软件设计的具体方案,并论述了

摘要:为了对烧断熔丝的MSP430系列单片机进行程序更新,选用USB转串口芯片PL2303和VB6.0编程言语规划出了一款高性价比的BSL编程东西,给出了该编程东西的硬件和软件规划的详细计划,并论说了规划中的要害。该BSL编程东西运用便利、操作简略、本钱低价,投入运用今后获得了较好的作用。

导言

美国德州仪器公司的MSP430系列单片机在智能仪器仪表、医疗电子、消费电子等范畴有着十分广泛的运用。大部分MSP430系列单片机都具有非易失性Flash存储器,用户调试或更新Flash中程序的办法一般有两种办法:JTAG和Bootstrap Loader(引导装载程序,简称BSL)。

MSP430系列单片机内部集成了JTAG仿真调试模块,并口转换器就能够作为一个低本钱的JTAG硬件仿真调试东西,但是,为了保护用户程序代码,往往产品开发完结之后必需求烧断MSP430单片机内部的熔丝,这就使得MSP430单片机无法再通过JTAG接口拜访CPU或许更新Flash中的用户程序了,要想再次拜访或许更新Flash中的用户程序就需求运用BSL接口。BSL接口也是对烧断熔丝后的MSP430单片机进行程序晋级的仅有办法。

MSP430系列单片机出厂时在特定的内存空间固化了一段引导代码,即BSL,通过在单片机特定引脚上加一个特定的时序就可进入这段引导代码,用户就能够通过规范的异步串行口拜访单片机的内部资源,如Flash、RAM等(读操作需求验证暗码),这就为嵌入式运用供给了便利的晋级和保护办法。

选用USB转串口芯片和VB6.0编程言语规划并完结了一种本钱低价、运用便利、操作简略的BSL编程东西,能够通过串口完结对MSP430系列单片机进行擦除、编程、主动下载文件、声响提示以及主动运转代码等功用。体系总体规划框图如图1所示。

a.jpg

1 体系硬件规划

该BSL编程东西的硬件是运用USB转串口芯片PL2303规划的,具有运用便利、规划本钱低一级长处。PL2303是Prolific公司出产的USB总线转接芯片,具有悉数调制解调器操控信号,如TXD、RXD、DTR、RTS等,可完结USB转3.3 V或5 V全双工串口TTL电平。

PL2303芯片接入PC机后会发生一个虚拟的串口设备,运用VB6.0供给的MSComm串口控件进行编程,即可操控TXD、RXD、DTR、RTS发生所需求的时序信号。虽然运用PC机的物理串口也能够完结相同的功用,但并不是每台PC机都有物理串口,USB转串口芯片使得该编程东西省去了物理串口的约束,并可为MSP430单片机供给电源,因而,PL2303是移动体系和嵌入式体系的抱负挑选,其小封装能够嵌入到任何衔接件和手持设备中。

该编程东西将PL2303芯片的DTR、RTS引脚别离衔接到MSP430系列单片机的RST、TCK(或许TEST)引脚,如果是带有TEST引脚的MSP430单片机,则运用TEST引脚替换TCK引脚。TX D、RXD是串口发送、接纳引脚,需求衔接MSP430单片机对应的BSL引脚,不同的单片机对应的接纳和发送引脚不完全相同。PL2303芯片的第4个引脚VDD 325是用来决议操控信号逻辑电平的,MSP430系列单片机都是3.3 V作业电压,因而,VDD_325应该接3.3 V,以便于TXD、RXD、DTR和RTS发生3.3 V逻辑电平。AMS1117是用来将5 V电压转换为3.3 V电压,除了给VDD_325供给电压,也能够给外部的MSP430单片机供给3.3 V电源。体系硬件规划原理图如图2所示。

b.jpg

2 体系软件规划

BSL编程东西的软件规划选用VB6.0来完结,虽然运用VC++、Delphi等编程东西都能够完结该软件的规划,但挑选VB6.0具有更多的优势,由于VB是一种比较简略的事情驱动编程言语,对初学者的要求较低。VB具有图形用户界面和快速运用程序开发体系,运用其供给的组件完全能够完结该软件的规划。

2.1 MSP430单片机BSL时序介绍

要使MSP430单片机进入BSL复位向量,需求在单片机的RST和TCK(或许TEST)引脚施加一个特定的时序,MSP430单片机接到这个特定时序后,CPU的程序指针(PC)指向0x 0C00地址处,这是一段1 KB的ROM区(0x 0C00~0x 1000)。

在BSL程序开端履行时,TCK引脚已收到至少两个负跳变,并且当RST由低向高跳变时TCK坚持低电平,此刻,MSP430单片机进入BSL状况;如果是带有TEST引脚的MSP430单片机,则运用TEST引脚替换TCK引脚,并且TEST引脚接纳的到是至少两个正跳变,并且当RST由低向高跳变时 TEST坚持高电平。MSP430单片机BSL发动时序如图3所示。

c.jpg

2. 2 BSL的串口通讯协议

MSP430单片机运用内部定时器完结在特定的引脚模仿串口通讯时序,大多数MSP430单片机的P1.1引脚作为BSL的发送端(即TXD),P2.2引脚作为BSL的接纳端(即RXD),不同类型的单片时机有所不同。

MSP430单片机的串口协议默许选用:9 600的波特率,半双工形式,1位开端位,8位数据位(最低位在前),1个偶校验位,1位中止位。握手是通过一个承认字符进行的,在发送任何指令之前,有必要先发送一个值为80H的同步字符给BSL,它供给了BSL体系时刻基准。当BSL接纳到同步字符之后,会发送一个90H的字符以承认成功接纳。

BSL供给给用户的指令首要分为两类:一类指令需求验证暗码才干履行,如拜访单片机Flash、RAM以及外设等操作;另一类指令无需验证暗码即可履行,如全体擦除Flash、读取BSL版别等。部分BSL指令数据帧格局如表1所列。

d.jpg

其间,从HDR到LH的8个字节是有必要的,xx表明恣意数据;数据D1~Dn是可选的;CKL是校验和的低位,CKH是校验和的高位,这两个字节是必需的;ACK承认字节并不是每个指令都需求的。

2.3 BSL软件规划

进行BSL软件规划,首要用到了VB6.0中的几个要害控件,如MSComm、CommandDialog、ComboBox、Timer、TextBox、ProgressBar、CommandButton、CheckBox等规范控件。

该BSL编程软件下载的程序文件格局为TI公司txt纯文本格局,它运用“@”表明地址的开端,地址后边表明从该地址开端要存储的数据内容,从地址后每一行为16个字节,每个字节运用十六进制数表明,每两个字节之间用一个空格离隔。每遇到一个“@”字符就表明新地址的开端,地址后边相同表明从该地址开端要存储的数据内容,文件最终以一个小写的“q”字符加换行完毕。依据TI-txt文件的格局,首先要运用CommandDialog控件翻开要下载的文件,运用必定的算法别离出整个TI-txt文件中的多段开端地址以及每个开端地址所对应的数据内容,然后通过串口一步一步地发送给BSL并写入到指定的地址段。BSL编程软件对TI-txt文件的处理流程如图4所示。

e.jpg

要通过串口完结上位机软件和MSP430单片机的BSL进行数据交换,最要害的一步便是先要使MSP430单片机进入BSL状况。而要想使MSP430单片机进入BSL状况,必需求在RST和TCK(或许TEST)引脚施加一个特定的时序,通过运用MSComm的两个特点DTREnable和 RTSEnable能够发生所需求的时序。DTREnable特点是确认在通讯过程中是否运用DTR(Data Term inal Ready)线。若DTREnable设置为True,则运用DTR线;若为False(缺省),则制止DTR线。RTSEnable特点和 DTREnable特点相似,RTSEnable特点用于确认是否运用RTS(Request To Send)线。若RTSEnable设置为True,则运用RTS线;若为False(缺省),则不运用RTS线。运用MSComm的这两个特点,能够在 VB6.0中通过以下代码使MSP430单片机进入BSL状况。

f.jpg

其间,DTRCheck和RTSCheck这两个控件十分有用,能够在不改变硬件的情况下使DTR和RTS输出的逻辑电平反相,这使得该BSL上位机软件既能够适用于有TCK引脚的单片机,也能够适用于有TEST引脚的单片机,大大增强了BSL软件的灵活性。

使MSP430单片机进入BSL状况是要害的一步,打通了这一底层通讯的要害环节之后,就能够一步一步地编写调试其他各个软件模块了。MSP430单片机BSL编程软件的规划流程图和BSL编程软件界面图如图5、6所示。

h.jpg

i.jpg

结语

选用USB转串口芯片PL2303和VB6.0编程言语规划出了一款高性价比的BSL编程东西,该BSL编程东西具有运用便利、操作简略、本钱低价等长处,通过USB虚拟串口,不光能够对烧断熔丝的MSP430系列单片机进行程序晋级等操作,并且也能够作为用户学习MSP430单片机的廉价编程东西。通过重复屡次修正及完善,该BSL编程东西运用于某机床厂的实践项目中,并被多个高校的大学生在实践立异中运用,取得了较好的作用。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/ziliao/zhudong/281404.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部