TM4C1233H6PZ双处理器的多串口实现技术

2016-03-20 09:14王国辉
单片机与嵌入式系统应用 2016年11期
关键词:接收数据串口嵌入式

王国辉

(普天信息技术研究院,北京100080)

TM4C1233H6PZ双处理器的多串口实现技术

王国辉

(普天信息技术研究院,北京100080)

基于嵌入式微处理器的智能数据采集与控制系统通常采用UART口进行通信。大多数微处理器仅有1或2个UART口,限制了其应用。基于TM4C1233 H6PZ的双处理器系统,利用SPI接口作桥接,实现了16个UART口的通信,并在实用产品上得到验证。该方法适用于串口数需求较多、数据量较大的系统,解决了微处理器UART口不够用的局限性问题,提供了一种扩展UART口的方法。

TM4C1233H6PZ;双处理器;SPI总线;UART口;串口扩展

引 言

随着嵌入式技术的发展,嵌入式微处理器在数据采集、工业控制、仪器仪表、智能家电、医疗设备、家庭安防控制、车辆监控和调度、有线及无线数据传输等很多领域有广泛的应用。特别是嵌入式微处理器与无线网络技术相结合构成的无线网络测控系统,在测控领域应用甚为突出。

为了满足数字化和智能化要求,在这种以微处理器为核心的智能化测控系统中,处理器与外围电路功能模块、器件及传感器之间的通信大多采用简洁高效的串口通信方式,因为串行通信设备具有控制灵活、接口简单、占用系统资源少等优点。然而大部分微处理器仅提供一个或少量几个串口,这样势必会导致微处理器的串口不够用,难以满足与多个外部设备进行串口通信的需求。为了便于设备的接入,必须进行UART口扩展,获得多个UART口,与多个外设通信,以解决嵌入式微处理器在串行通信系统中的串口局限问题。

笔者设计了一款无线信息采集系统,该系统包括14个不同功能的无线通信模块,主控器采用嵌入式微处理器,处理器与各模块之间采用UART口通信。为了保证数据采集的实时性,提高采集效率,需并行采集各种通信模块的数据,而普通微处理器仅有为数不多的几个UART口,要想实现实时、高效、并行地采集多模块的数据,必须进行串口扩展。

1 嵌入式系统实现多串口的方法

总的来说,要在一个嵌入式系统中实现多串口,主要有软件模拟法、分时复用法、并口扩串口法、串口扩串口法等几种方法。各种方法各有优缺点,如表1所列,适合于不同的场合。

软件模拟法是根据串行通信的收发格式,利用定时器和主处理器的I/O口来模拟串行通信的时序,达到扩展串口的目的。软件模拟价格低廉,无需外围电路,使用方便,但并不是所有的微处理器都适合软件模拟串口;软件模拟串口需要占用较多的CPU资源,用掉定时器资源,效率低,很难模拟4个以上的串口,要占用大量时间,任务较多的系统不宜采用。

表1 各种串口扩展方法比较

在电路设计的过程中,如果系统实时性不高,各串口设备不必同时工作,只是分时地工作,可以根据系统需要,采用模拟开关,将1个串口扩展为多个串口,这是分时复用法。这种多路模拟开关很多,如TI的CD4067和CD4097芯片[1],可分时扩展8个和16个串口。分时复用法成本低,占用系统资源少,易于控制,但只适用于数据量不大,主处理器与各从设备之间不同时收发数据情况,各串口设备不能实时与主CPU通信,只能分时通信,不适合实时性要求高的系统。

并口扩串口法是利用主机的并口,通过增加外围扩展芯片,扩展出多个串口。这种芯片有Intel的8251和TI的TL16C55x系列。TL16C55x是多通道异步收发器集成芯片,最多可扩展4个UART口[2]。该方法功能比较强大,通信速度高,用于通信实时性要求较高的系统,用来实现系统的高效多串口通信,增强系统的通信接口控制能力;但控制复杂,价格较高。

串口扩串口法采用外围专用芯片,利用主机的串行接口扩展多个串口,各串口可同时使用。专用芯片有GM8123/25、SP2338和SP2538等。GM8123/25系列串口扩展芯片可以全硬件实现串口扩展,将一个全双工的标准串口扩展成5个标准串口,单通道模式下,最高波特率支持20 Mbps,多通道模式下,子串口最高波特率为38 400 bps[3]。该方法外部控制线少、应用灵活、通用性强、性能稳定,但控制复杂,价格也较高。

另外,还可借助微处理器的SPI总线接口,采用专用扩展芯片,实现高速SPI口转多个UART口的方法。这种芯片如NXP公司的SC16IS752,可扩展出速率到达5 Mbps双通道高性能UART[4],周立功公司的ZLG9518S,可将SPI口转换为8路UART口,最高可达115 200 bps。SPI扩展可得到的UART口数量多,速度快,整个设计简捷、具有通用性。

2 “双核”多串口实现技术

无线信息采集系统所需连接的无线模块有14个之多,为了提高采集效率,并行采集各模块数据,现在还没有一款微处理器自带这么多的UART口,要想实现多模块并行采集,必须进行串口扩展。

首先为了提高采集效率,尽量选取自带UART口比较多的微处理器,目前大多数微处理器自带2~4个UART口,最多的是TI的TIVA C系列MCU,有8个。本文基于TM4C1233H6PZ微处理器实现系统所需的多串口通信。TIVA C系列微处理器,具有ARM Cortex-M4核,适合于需要良好的控制和连接性能的产品,如低功耗手持智能设备、游戏装置、家庭和商用监控、医疗仪器、测试设备、消防和安全等。TM4C1233H6PZ工作频率为80 MHz,具有4个SPI口,支持USB 2.0设备,包括8个可完全编程的16C550型UART口,每个UART口的Rx和Tx都可单独产生中断,波特率可单独设置,最高达到5 Mbps[5]。

图1 系统原理框图

为了实现设备所需要的14个UART口,还需要扩展6个。根据并行采集数据的需求,必须用外围扩展芯片进行扩展,由于TM4C1233 H6PZ具有支持主模式和从模式的SPI接口,并具有8个UART口;再采用一个TM4C1233 H6PZ作为协处理器,通过SPI接口与主处理器通信,还能再扩展出8个UART口。这样整个系统共有16个UART口并行工作,整个系统组成如图1所示。主处理器带8个UART口,Uart0~7,其中1个串口Uart0用于调试Debug口,其他7个串口可用于并行数据采集;协处理器也有8个UART口,Uart0-1~Uart7-1,其中Uart0-1用于调试Debug口,其他7个串口用于并行数据采集;主处理器和协处理器之间通过SPI接口连接,以SPI接口作为主—协处理器通信的桥梁。当协处理器上某个UART口有数据需要接收时,协处理器产生串口中断并响应中断,协处理器收到数据后,通过SPI口发给主处理器,并在主处理器产生一个SPI中断,主处理器响应中断并接收数据,这样实现了扩展出的UART口的数据接收;同理可以实现扩展UART口的数据发送。

3 详细设计和实验

串行外围设备接口(Serial Peripheral Interface,SPI)是Motorola公司推出的一种同步串行接口,其硬件功能强大。实现SPI通信需要3~4根线:同步时钟(SCLK)线、片选控制(CS)线,主输出/从输入(MOSI)线和主输入/从输出(MISO)线。具体发送和接收数据的时序[5]如图2所示。

图2 TI SPI收发数据时序图

根据设备实际使用的情况,采用主处理器和协处理器的“双核”结构,实现了16个串口设备的连接,电路原理图如图3所示。

图3 电路原理图

展示了“双核”结构中两个处理器之间,以及各模块之间的物理连接关系,两个处理器之间通过SPI接口连接。TM4C1233H6PZ具有SPI接口,且支持主模式和从模式,主处理器的SPI口设置为SPI主模式,协处理器的SPI接口设置为从模式。

依据硬件连接关系、SPI工作模式及工作时序、主处理器和协处理器的工作模式等,进行软件设计。软件主要包括向各UART口发送数据和从各UART口接收数据,具体的软件流程如图4和图5所示。

主处理器和协处理器协调工作完成数据的发送和接收。发送数据分往主处理器UART口发送和往协处理器UART口发送,往主处理器UART口发送时,可直接发送;往协处理器UART口发送时,需要把数据和协处理器UART口编号打包,再从SPI口发送给协处理器;协处理器接收到SPI中断后,解析SPI口收到的数据,并把数据发送给相应的UART口。接收数据也分从主处理器UART口接收数据和从协处理器UART口接收数据,从主处理器UART口接收数据时,直接产生主处理器UART中断,主处理器直接接收数据并处理数据;从协处理器UART口接收数据时,协处理器先产生UART中断,并接收该UART口发来的数据,协处理器把收到的数据和UART编号打包,从SPI口发送给主处理器;主处理器响应SPI中断,接收数据并解析SPI口收到的数据,解析成UART编号和数据,并处理数据。

在无线信息采集系统中,对扩展16个UART口的可行性和实用性进行测试和验证,经过对实际设备的安装调试,各通信模块能稳定、高效地与主CPU和协CPU进行通信,通信良好,抗干扰能力强。各UART口波特率为115 200 bps,全部无线数据在5 s之内完成采集。每个串口设备的发送要求都能被及时地响应,即使所有串口设备同时有发送要求,数据也不丢失,实现了主处理器和各外设实时通信,取得实用化和产品化的满意效果。

图4 向UART口发送数据

图5 从UART口接收数据

结 语

UART口通信是微处理器常用的通信方式,基于TM4C1233H6PZ的“双核”系统实现了16个UART口与外设可靠、稳定地通信,完成了无线信息采集系统的实用化和产品化。该方法适用于数据量较大、串口需求较多的系统,抗干扰能力高,开发人员只需熟悉一种微处理器即可,缩短了产品的开发周期,解决了微处理器在串行通信应用系统中的串口局限问题,为微处理器在智能测控系统中的应用提供了比较重要的参考。

[1]刘小芳,曾黄麟,吕炳朝.单片机的多串口扩展技术的设计[J].计算机测量与控制,2004,12(11)::1088-1090.

[2]朱学明,丁万山.一种基于TL16C554A的DSP多串口扩展方法[J].微处理机,2006,12(6):24-27.

[3]钱震宇、肖昌汉.基于GM8125的单片机多串口通信电路的设计与实现[J].船电技术,2011,11(31):22-24.

[4]解书钢,马维华,吴术.S P I总线的U A R T扩展方法[J].单片机与嵌入式系统应用,200(6):42-44.

[5]Texas Instruments.Tiva TM4C1233H6PZ Microcontroller Data sheet,2013.

Multi-serial Port Realization Technology of Dual-microprocessor Based on TM4C1233H6PZ

Wang Guohui
(Potevio Institute of Technology,Beijing 100080,China)

The intelligent data acquisition and control system based on embedded microprocessor often uses UART ports to communicate with other devices.Most of the microprocessors have only 1 to 2 UART ports,so the application is limited.The dual-microprocessor system based on TM4C1233H6PZ achieves 16 UART ports communication by the bridge of SPI interface.The method is proved in the practical product.The technique is applied for the acquisition system which needs more serial ports and with a large amount of data.It solves the problem that the lack of serial ports in the microprocessor,and a multi-serial port extension method is provided.

TM4C1233 H6PZ;dual-microprocessor;SPI bus;UART port;serial port extension

TP368.1

:A

杨迪娜

2016-05-19)

猜你喜欢
接收数据串口嵌入式
Focal&Naim同框发布1000系列嵌入式扬声器及全新Uniti Atmos流媒体一体机
浅谈AB PLC串口跟RFID传感器的通讯应用
TS系列红外传感器在嵌入式控制系统中的应用
低复杂度多输入多输出雷达目标角度估计方法
基于LoRa的低能耗物联网技术研究
搭建基于Qt的嵌入式开发平台
单片机模拟串口数据接收程序的实现及优化
数字电源内部数据传输的串口通信方法实现
USB接口的多串口数据并行接收方法探索
串口技术的实物调试和虚拟仿真联合教学模式