MB89P475的UART/SIO结构与应用分析

发布者:平安守护最新更新时间:2012-11-14 来源: 21ic 关键字:MB89P475  UART  SIO结构 手机看文章 扫描二维码
随时随地手机看文章

MB89P475是富士通公司生产的F2MC-8L MB89470单片机系列产品。该产品具有丰富的软、硬件资源和良好的EMC性能,而且其程序空间(16k×8bits PROM)和数据空间(512×8bits RAM)大小适中,定时器资源和中断资源丰富。双路UART/SIO接口的设置是该产品的一大特点。在指令设计方面,利用该单片机可以直接进行16位数据的比较和算术运算。MB89P475的高性价比和合理的资源配置,使其可以广泛应用于家用电器控制和工业控制等应用领域。此外,在多级数据通信控制系统的开发设计中,MB89P475也是一款不可多得的单片机产品。



1 MB89P475简介

1.1 引脚功能

MB89P475(OTP型号)相应的掩膜(MASK)产品型号为MB89475,它具有两种封装形式,分别是48-pin Plastic SH-DIP和48-pin Plastic QFP封装。本文以SH-DIP封装形式为例来介绍其引脚定义,图1所示是该封装的引脚排列图,现将各引脚的功能说明如下:

X0,X1:振荡器输入、输出;

MODE:模式设定引脚,使用时,该引脚通常直接接地;

RST:复位脚,低电平复位;

P00/AN0~P07/AN7:通用I/O口或A/D输入口;

P10~P13:通用I/O口或沿触发中断输入口;

P14~P17:通用I/O口或定时器输入(EC)、输出口(TO);

P20~P22:通用I/O口或UART/SIO1的时钟输入、数据输出和输入口;

P23:通用I/O口或PWC(脉宽测量)输入口;

P24:通用I/O口或PWM(脉宽调制)输出口;

P25~P27:通用I/O口或UART/SIO2的数据输入、数据输出、时钟输入口;

P30*~P36*:大电流驱动输出口,其中,P30/BUZ*可作蜂鸣器驱动口;

P40~P41:在MB89P475(102)(单时钟系统)中为通用输入口,在MB89P475(202)(双时钟系统)中为副时钟连接引脚;

P42:通用输入口;

P50~P54:通用I/O口或电平触发中断输入口(低电平中断);

C:接0.1μF电容到地;

Vcc、Vss:电源(+5V)和接地(GND)引脚;

Avcc、Avss:A/D电路的参考电源和地。

1.2 主要特点

MB89P475内含六个定时器,分别为:PWC(脉宽测量)定时器(可用作时间间隔定时器)、PWM(脉宽调制)定时器(可用作时间间隔定时器)、2个8/16bit 定时/计数器、一个21-bit时间基准定时器和一个Watch比例器。此外,MB89P475还具有如下特点:

●带有蜂鸣器驱动,可由程序选择7种驱动信号频率;

●可外部中断,包括4个沿触发中断通道和5个电平触发中断通道;

●内含8通道10位A/D转换器;



    ●内含UART/SIO 异步/同步数据接收/发射器;    发射数据写入SODR1/2寄存器时,发射数据标志位TDRE同时被清“0”,发射数据转送到发射移位寄存器后,TDRE被置“1”,意味着SODR1/2寄存器可以写入下一个发射数据,同时,若发射中断允许,将产生发射中断请求。[page]

●可低功耗工作,具有Stop模式、Sleep模式、副时钟模式、Watch模式等多种工作模式;

●带有Watchdog 定时复位功能;

●最大可用39路I/O口。

2 MB89P475的UART/SIO结构

MB89P475的最大特点就是内部集成了一个UART/SIO通用串行数据通信接口,可通过片内双缓冲器实现全双工双向通信?同时?UART/SIO可编程配置为异步或同步通信模式;其内部波特率发生器既可以选择14种不同的波特率?也可由外部时钟设置波特率?其数据传输格式见表1所列。该数据传输格式基于NRZ(不归零)系统。

表1 UART/SIO数据格式

模  式 数据长度(Bit) 通信模式 停止位长度
无校验 有校验
0 7 8 异步 1bit或2bits
8 9
1 8 同步 --

MB89P475内含六个寄存器,分述如下:

Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0
MD PEN TDP SBL CL CLK2 CLK1 CLK0

(1) SMC11/21:模式控制寄存器1(地址:0026H/002BH,初始化值:00000000H)的格式如下:

其中,MD为通信模式控制位,该位为0为异步通信(UART),为1时同步通信(SIO);

PEN为校验控制位,该位为0表示无校验,为1表示有校验(由Bit5选择奇、偶校验);

TDP为奇、偶校验位,0为偶校验,1为奇校验;

SBL是停止位长度控制位,0 为选择1Bit停止位,1为选择2 Bit停止位;

CL为字符长度控制位,0 为选择7 Bit数据长度,1为选择8 Bit数据长度;

CLK2~CLK0:通信时钟选择位,具体操作见表2所列。

表2 时钟选择

CLK2 CLK1 CLK0

选  择  时  钟

0 0 0 2个指令周期
0 0 1 8个指令周期
0 1 0 32个指令周期
0 1 1 波特率发生器控制
1 0 0 外部时钟

(2)SMC12/22:模式控制寄存器2(地址:0027H/002CH,初始化值:00000000H)的格式如下:

Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0
RERC RXE TXE BRGE TXOE SCKE RIE TIE

其中,RERC:各接收标志清除位。置0时,清除所有错误标志,置1无效;[page]

RXE:数据接收允许位,置0时禁止接收,置1时允许接收;

TXE:数据发射允许位,置0时禁止发射,置1时允许发射;

BRGE:波特率发生器启动位,0为停止,1为启动;

TXOE:串行数据输出允许位,置0时,P21/SO1、P26/SO2为通用I/O口,置1时,P21/SO1、P26/SO2为串行数据输出口;

SCKE:串行时钟输出允许位,置0时,P20/SCK1、P27/SCK2为通用I/O口或串行时钟输入口,置1时,P20/SCK1、P27/SCK2为串行时钟输出口;

RIE:接收中断允许位,置0时,接收中断禁止,置1时,接收中断允许;

TIE:发射中断允许位,置0时,发射中断禁止,置1时,发射中断允许。

(3) SSD1/2:状态与数据寄存器(地址:0028H/002DH,初始化值:00001---H),格式如下:

Bit7 Bit6 Bit5 BIT4 Bit3 Bit2 Bit1 Bit0
PRE OVE FER RDRF TDRE -- -- --

其中,PRE:为校验错误标志,0为无校验错误,1为校验错误;

OVE:溢出错误标志,0为无溢出错误,1为溢出错误;

FER:帧错误标志,0为无帧错误,1为帧错误;

RDRF:接收数据寄存器满标志,0为寄存器空,1为接收数据满;

TDRE:发射数据寄存器空标志,0为发射数据满,1为寄存器空。

这里,SSD1/2是只读寄存器。若接收中断允许(RIE=1),那么任何错误标志置“1”都将产生接收中断。因此,在程序中将RERC(SMC12/22中的Bit7)置“1”,可将各错误标志清零。

(4)SRC1/2:波特率控制寄存器(地址:002AH/002FH,初始化值:xxxxxxxxH)

当SMC11/SMC21寄存器中的CLK2 ~ CLK0设为“011”时,由于选择的是波特率发生器作为串行时钟(异步通信方式使用),因此,只有在UART/SIO停止工作时,写入SRC1/2的数据才有效。此时,波特率计算方法如下(CLK2~CLK0设为“011”):

波特率=1/(16nTint)

式中,n为写入SRC1/2的数值,Tint为指令周期,其值可通过对相关寄存器编程设定为4/fch、8/fch、16/fch、64/fch(其中fch为系统时钟振荡器频率)。[page]

(5) SIDR1/2: 输入数据寄存器(地址:0029H/002EH,初始化值:xxxxxxxxH)

该寄存器用于存放接收到的数据。当数据接收完成时,RSRF位(SSD1/2中的Bit4)被置“1”,此时若接收中断允许,将产生接收中断请求。读出接收数据后,RSRF位自动清“0”。

系统检测到接收中断请求后,应检查RSRF位是否为“1”,若为“0”,说明该中断是由于接收错误产生的,SIDR1/2并未接收到数据,此时应在相应的程序中作相应处理。

(6) SODR1/2:输出数据寄存器(地址:0029H/002EH,初始化值:xxxxxxxxH)

SODR1/2与SIDR1/2具有相同的地址。发射允许时,将发射数据写入该寄存器即可直接转送到发射寄存器,并通过发射移位寄存器发送到串行数据输出口(SO1/2)。

若将发射数据长度设为7 Bits,则数据的第7位(最高位)无效。

3 LSR300型集控系统的构成

图2所示为LSR300型中央空调计算机集控系统的结构框图,该系统采用RS-485总线结构方式,由计算机控制管理平台、RS-232/RS-485转换模块、14个控制终端(包括通信板和主控系统,其控制终端数量可以根据实际要求增加或减少)组成。其中计算机控制管理平台主要用于数据通信、系统检测、功能设定和控制以及查询等管理工作。

系统中的RS-232/RS-485转换模块由MAX-IM公司生产的MAX491E、MAX232A组成,该模块的电路连接如图3所示。

通信板由MB89P475为核心组成,其结构如图4所示。图中的RS-485接口由MAX491E完成,接收器处于常通状态(RE接地),发射器的选通(DE端)由MB89P475的P2.7口控制(高电平选通)。通信板主要完成以下功能:

(1) 用拨码开关实现各控制终端的地址编码;

(2) 机组的本地操作控制与显示(包括本地查询、设置和控制);

(3) 分别与计算机和主控系统通信,实现主控系统与计算机之间的数据传送。其中,与计算机之间采用RS-485总线方式进行连接,而与主控系统之间则采用电流环方式连接;

(4) 记忆机组的设定信息、故障信息和累计运行时间。[page]

此外,系统中的主控系统也可采用LSR300中央空调单机组控制系统实现(详见参考资料?1?)。

4 MB89P475的通信软件设计

4.1 通信板与计算机通信

(1)通信协议

通信板与计算机的通信采用RS-485总线方式连接,通信过程由计算机主控,通信数据采用RS-232标准数据格式[2]。

当通信板接收到正确的同步码和地址码时,表示该通信板可以与计算机通信。此时可选择MB89P475的UART/SIO2为UART(两线异步)通信模式,通信数据格式定义为1位起始位,8位数据长度和1位停止位,无校验位。

(2)软件设计

UART/SIO2相关寄存器初始化如下:

MOV SCR2,#104 ;设定波特率=1200bps(系统时钟Fch=8.000MHz)

MOV SMC21,#00001011B ;选择UART模式,1Bit停止位,8Bits数据长度,无校验位

MOV SMC22,#01111010B ;允许接收中断,禁止发射中断,发射允许,接收允许

数据发射采用查询方式进行,即发射子程序置于主程序循环中,可通过查询发射数据寄存器空标志位TDRE决定是否写入下一个发射数据。发射子程序流程图如图5所示。

数据接收采用中断方式进行。程序进入接收中断服务程序时,应首先根据接收数据满标志位RDRF的状态来判断中断请求是否是由于接收错误产生的(产生中断时,接收数据满标志位RDRF=0),然后由判断结果决定是接收数据还是进行出错处理。中断服务程序的流程图如图6所示。

4.2 通信板与主控系统通信

(1)通信协议

通信板与主控系统的通信采用电流环方式实现,这样可以增强通信的可靠性。通信过程由通信板主控,通信数据采用RS-232标准数据格式[2]。

可选择MB89P475的UART/SIO1为UART(两线异步)通信模式,通信数据格式定义为1位起始位,8位数据长度和1位停止位,无校验位。

(2)软件设计

相关寄存器初始化如下:

MOV SCR1,#52 ;设定波特率=2400bps(系统时钟Fch=8.000MHz)

MOV SMC11,#00001011B ;选择UART模式,1Bit停止位,8Bits数据长度,无校验位

MOV SMC12,#01111010B ;允许接收中断,禁止发射中断,发射允许,接收允许

具体的编程方法与通信板和计算机的通信编程方法相同。

5 结语

虽然MB89P475的双路UART/SIO结构具有灵活、安全的特点,但合理的程序设计也至关重要。在LSR300中央空调计算机集控系统中,以MB89P475为核心设计的通信板,充分合理地利用了MB89P475的双路UART/SIO资源。它可以作为各控制终端与计算机交换数据的枢纽,同时还避免了主控系统的重复开发。目前该系统已投入使用,其方便、灵活的操作模式和安全可靠的运行已得到了用户的肯定。

关键字:MB89P475  UART  SIO结构 引用地址:MB89P475的UART/SIO结构与应用分析

上一篇:单片机编程基础知识问答
下一篇:ADSP2189M在船舶自动识别系统开发中的应用

推荐阅读最新更新时间:2024-03-16 13:13

三 ARM9(S3C2440)的串口UART——程序实例讲解
串口通信程序编写步骤 UART通信程序可以采用查询、中断和DMA模式。我们通过使用较多的中断方式来介UART通信程序的编写。简单做法是,UART通信程序的编写参照例子程序。 选通道,通过函数Uart_Select();选UART0~UART2; 选波特率和波特率发生器时钟,选波特率通过函数Uart_Pclk_En(int ch, int baud)或Uart_Pclk_En(int ch, int baud)来进行。时钟选UCLK ,rUCON0|=0x400;时钟选PCLK ,rUCON0&=0x3ff。 通信协议(rULCON0)设定,如果正常通信,一位停止位,8位数据位,无奇偶效验: rULCON0=(0 6
[单片机]
【STM32】4—UART串口(查询模式)
0 实验预期效果 完成串口数据的接收和发送 1 相关原理图 2 硬件配置 DAPLINK、STM32F407VET6: TXD —— PA10 注意!!!!一定要看清!!!不要接错!!TXD是接PA10!!! RXD —— PA9 注意!!!!一定要看清!!!不要接错!!RXD是接PA9!!! GND —— GND 5V —— 5V 3 软件配置 USART相关知识 USART 简介、功能说明、框图见博客:【STM32】基于STM32F407实现串口通信_Max_Shy的博客-CSDN博客_stm3
[单片机]
【STM32】4—<font color='red'>UART</font>串口(查询模式)
一起学mini2440裸机开发(七)--UART高级实验,可变参函数
概述: 在C语言中,使用printf()进行格式化输出非常方便,例如,printf( %dn ,a)可以将a的值以十进制的格式输出,然后换行。printff()函数的原型为:int printf(const char *format,...),在函数参数中的...表示可变参数,即输入参数的个数不确定(例如,printf( %dn ,a)和printf( %d%dn ,a,b)都可以使函数进行正确的输出),这种输入参数不确定的函数就叫可变参数。在UART中能不能自己写一个类似于 printf() 的函数(例如,Uart0_Printf( %d ,a))呢?下面咱们就试图找到实现这种函数的方法。 实验内容: 本实验要实现的功能就是
[单片机]
一起学mini2440裸机开发(七)--<font color='red'>UART</font>高级实验,可变参函数
MSP430F149单片机实现uart数据接收中断
/***************************************************** 程序功能:MCU不停向PC机发送数据,在屏幕上显示0~127对应 的ASCII字符 ------------------------------------------------------ 通信格式:N.8.1, 9600 ------------------------------------------------------ 测试说明:打开串口调试精灵,正确设置通信格式,观察屏幕 ******************************************************/ #incl
[单片机]
SPI,UART,I2C都有什么区别,及其各自的特点
区别: SPI:高速同步串行口。3~4线接口,收发独立、可同步进行 UART:通用异步串行口。按照标准波特率完成双向通讯,速度慢 I2C:一种串行传输方式,三线制,网上可找到其通信协议和用法的 3根线实现数据双向传输 串行外围接口 Serial peripheral interface UART:通用异步收发器 UART是用于控制计算机与串行设备的芯片。有一点要注意的是,它提供了RS-232C数据终端设备接口,这样计算机就可以和调制解调器或其它使用RS-232C接口的串行设备通信了。作为接口的一部分,UART还提供以下功能: 将由计算机内部传送过来的并行数据转换为输出的串行数据流。将计算机外部来的串行数据转换为字
[单片机]
三ARM9(S3C2440)的串口UART——程序实例讲解
串口通信程序编写步骤 UART通信程序可以采用查询、中断和DMA模式。我们通过使用较多的中断方式来介UART通信程序的编写。简单做法是,UART通信程序的编写参照例子程序。 选通道,通过函数Uart_Select();选UART0~UART2; 选波特率和波特率发生器时钟,选波特率通过函数Uart_Pclk_En(int ch, int baud)或Uart_Pclk_En(int ch, int baud)来进行。时钟选UCLK ,rUCON0|=0x400;时钟选PCLK ,rUCON0&=0x3ff。 通信协议(rULCON0)设定,如果正常通信,一位停止位,8位数据位,无奇偶效验: rULCON0=(0 6
[单片机]
关于UART通信端口上射频干扰的研究技术
有客户报告其中心位于840MHz左右的RF干扰影响配置成UART的串行通信端口,该接口位于包含一个AD6903(LeMansLCR+)数字式基带处理器的调制解调器和一台主处理机之间。 出现的问题是连接到AD6903GPIO_1引脚的UARTRX信号中出现噪声,每当射频(RF)干扰源出现时,信号平均电压就会远离其期望值。平均电压的偏移幅度取决于RF源的功率和频率。 图1显示当射频功率放大器接通时,进入AD6903的GPIO_1引脚上的UARTRX信号受到影响的情况。在图1中,进入AD6903的UARTRX用粉红色表示,来自主处理机的UARTTX信号用紫色表示,功率放大器使能用黄色表示,而AD6903VEXT电源用绿色表示。
[测试测量]
关于<font color='red'>UART</font>通信端口上射频干扰的研究技术
多路UART总线与CAN总线通讯系统设计
    由于在消费类电子产品、计算机外设、汽车和工业应用中增加了嵌入式功能,对低成本、高速和高可靠通信介质的要求也不断增长,以满足这些应用,其结果是越来越多的处理器和控制器用不同类型的总线集成在一起,实现与PC软件、开发系统或网络中其他设备的通信。微处理器中常用的集成串行总线是通用异步接收器传输总线、串行通信接口以及车用串行总线,包括控制器局域网(CAN)。这些总线在速度、物理接口要求和通信方法学上都有所不同。本文主要利用TI公司的多路异步收发器TL16C554和PHILIPS公司的SJA1000实现一个4路UART总线与CAN总线之间的相互通讯过程。 1 UART与CAN介绍     UART模块采用TI公司的TL16C554,它
[嵌入式]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved