MSP430的多串口扩展适配器的设计
2014-07-20王林
王林
(安徽电子信息职业技术学院软件学院,安徽蚌埠233000)
MSP430的多串口扩展适配器的设计
王林
(安徽电子信息职业技术学院软件学院,安徽蚌埠233000)
设计了一种嵌入式系统中多串口扩展适配器的系统,其主控芯片采用MSP430F147单片机,串口扩展采用TL16C752B芯片.该系统结构简单、易于实现,满足对串口数量、成本和功耗有严格要求的应用场合.
MSP430F147;TL16C752B;多串口扩展
串行接口以其简单方便、可靠的特点成为最流行的通讯接口之一.在工业控制、医用设备、POS机等很多领域里,经常需要使用多个串口进行上、下位机的数据通讯.
在某项目的多通道数据采集系统中,使用四个串口分别作为四路数据采集的传输通道,传输速度要求100 kbps以上.TI公司生产的低功耗单片机MSP430F147作为主控芯片能够满足该系统的超低功耗的要求,而该单片机只有两个自带的全双工通信串口,需要以MSP430为核心扩展2~3个波特率可达115 200 bps的高速串口,从而满足应用需求.
1 总体方案
1.1 方案选择
针对嵌入式系统中主控芯片自带串口数量不足的情况,串口扩展方案主要有以下几种:
1)采用USB转串口芯片扩展,MSP430单片机没有集成USB接口,这种方案实现成本和复杂度高.
2)采用GM8125芯片进行扩展,GM8125是将母串口扩展成五个子串口的专用芯片,该方案能达到的最高波特率为38 400 bps[1],达不到本系统115 200 bps波特率的要求.
3)使用TL16C752B芯片进行扩展,该方案能够同时满足串口数量和波特率的要求.
1.2 MSP430F147单片机
MSP430F147是TI公司的一款16位RISC架构的高性能单片机,主要具有以下资源:两个带捕获/比较寄存器和PWM输出功能的16位定时器,32 kB+256字节的FLASH空间,1 KB的RAM,两个串行通信接口USART0/1,12位的A/D,48个I/O接口. MSP430系列单片机以低功耗著称,工作电压范围为1.8 V~3.6V,在2.2 V电压、1MHz的工作条件下,正常工作电流为280μA,待机模式下仅为1.6μA,广泛应用在采用电池供电的各类低功耗仪器仪表和便携式设备中[2].
1.3 TL16C752B芯片
TL16C752B是一款两路独立的UART芯片,也由TI公司生产.外接48MHz晶振时可达到3Mbps的波特率,从而能够满足高速数据传输的要求. TL16C752B的内部结构图如图1所示[3].
发送和接收端均有64字节的FIFO作为数据缓冲区,并且可以通过软件编程设置发送、接收FIFO触发中断的等级,以此来合理减少CPU中断的次数,提高系统效率.TL16C752B内部的主要寄存器如表1所示[4].
图1 TL16C752B内部结构
2 硬件设计
多串口扩展适配器的硬件设计包括MSP430最小系统、MSP430与TL16C752B的通信电路以及RS-232电平与TTL电平转换电路这几个部分.
表1 TL16C752B的寄存器
2.1 MSP430最小系统
最小系统保证了MSP430F147芯片能正常可靠工作,主要包括电源、复位电路和时钟电路(图2)[5].
图2 复位和时钟电路
最小系统电源由可充电锂电池提供3.3 V工作电压.复位电路采用手动复位方式,由专用复位芯片MAX811实现.外部时钟电路由两部分组成,其中32.768 kHz的晶振提供低速时钟信号来满足低功耗要求,4MHz的高速晶振为单片机在高频模式下提供时钟,两个晶振都需要外接22 pF的谐振电容.
2.2 MSP430与TL16C752B的连接
MSP430与TL16C752B之间的接口电路示意图如图3所示,MSP430的P2端口作为数据总线通过总线驱动芯片SN74LVC16245A与TL16C752B的D0~D7连接.MSP430的P3.5和P3.6端口连接到TL16C752B的nIOR和nIOW作为读写使能信号,P1.0和P1.1用来配置成外部中断接口与TL16C752B的INTA和INTB连接.TL16C752B的片选信号CSA和CSB由MSP430的P3.3和P3.4提供,TL16C752B的三根地址线A0~A2用来确定芯片内部寄存器的地址,分别连接到MSP430的P3.0~P3.2.对TL16C752B的内部寄存器进行读写时,必须首先保证片选信号和地址信号同时有效,并采用软件方式模拟芯片的读写时序完成操作.
RESET为TL16C752B的复位信号,高电平有效,而MSP430的复位信号为低电平有效,因此在这两个复位信号之间使用一个三极管进行反相,以此来同步复位整个系统.
图3 接口电路示意图
2.3 电平转换电路
标准串口使用的是RS-232电平,本系统中使用MAX3243E芯片来实现TTL电平与RS-232电平之间的转换[6].
3 软件设计
要使TL16C752B能够正常工作,需要编写单片机程序对其进行初始化,软件开发环境为IAR EmbeddedWorkbench,开发语言为C语言[7].
3.1 软件流程
软件驱动流程主要包括对MSP430和TL16C752B芯片的初始化以及数据的收发(如图4).
图4 软件处理流程
对TL16C752B的初始化主要包括以下内容[8]:
1)设定传输波特率;
2)FIFO数据缓冲寄存器的配置;
3)传输格式设定,包括数据位数、停止位数、奇偶校验位等;
4)中断寄存器的配置;
5)软件流控模式配置等.
3.2 部分关键代码
4 测试
验证多串口扩展适配器是否正常工作,可分为发送和接收数据两部分进行测试.在发送数据时,可以循环发送同一字符,如0xAA或0x55,在TXD引脚处连接示波器查看是否有方波信号.在接收数据时,需循环检查LSR寄存器的最低位,判断是否接收到字符,再通过外接的显示设备如数码管或主机的超级终端来判断接受到的字符是否正确.
经测试,所设计的多串口扩展适配器的数据收发功能完全正常,且传输速率基本满足要求.后续可考虑进一步优化软件驱动代码,并对该设计模块化以提高复用能力.
[1]张成瑞,李见为,王刚.基于单片机和GM8125的多路串口收发器设计[J].电脑知识与技术,2011,7(10):2422-2423.
[2]Texas Instruments.MSP430x13x,MSP430x14x,MSP430x14x1 Mixed signal microcontroller[EB/OL].(2004-06)[2014-06-10]. http://www.ti.com.cn/cn/lit/ds/sym link/msp430f1491.pdf.
[3]Texas Instruments.TL16C752B 3.3-V Dual UART with 64-Byte FIFO[EB/OL].(2007-12)[2014-06-09].http://www.ti.com.cn/cn/lit/ ds/sym link/tl16c752b-ep.pdf.
[4]靳红涛,赵娜,陈朝基,等.基于TL16C752B的DSP通用异步串行接口设计[J].2009,32(7):93-95.
[5]韩勇鹏,霍利锋.基于MSP430F169的最小系统设计[J].山西农业大学学报,2007(6):216-218.
[6]王欣,罗志祥,沈光.基于ARM和uClinux多串口通讯的设计与实现[J].计算机与数字工程,2007,35(8):144-148.
[7]洪利,章扬,李世宝.MSP430单片机原理与应用实例详解[M].北京:北京航空航天大学出版社,2010:118-133.
[8]陈伟,陈远知.用TL16C752B实现DSP和PC机的串行通信[J].国外电子元器件,2004(4):50-53.
【编校:许洁】
Design ofMultiSerial Port Expansion Adapter Based on MSP430
WANG Lin
(AnhuiVocationalCollege ofElectronicand Information Technology,Bengbu,Anhui233000,China)
The design scheme for multi serial port adapter of an embedded system was proposed which employed MSP430F147 as themain control chip and used TL16C752B to expand the serial port.The hardware circuitand software processingwere also introduced.The scheme has the advantagesof simple structure and easy realization.Itapplies to applicationswhich have strict requirementson thenumberofserialport,costand power consumption.
MSP430F147;TL16C752B;multiserialportexpansion
TP368.1
A
1671-5365(2014)12-0056-03
2014-06-17修回:2014-07-08
王林(1983-),男,讲师,硕士,研究方向为嵌入式系统
时间:2014-07-11 09:33
http://www.cnki.net/kcms/detail/51.1630.Z.20140711.0933.003.htm l