嵌入式技术基础与实践第7章 串行通信接口SCI

合集下载

第7章 串行通信接口(SCI)

第7章 串行通信接口(SCI)

第7章串行通信接口(SCI)目前几乎所有的台式电脑都带有9芯的异步串行通信口,简称串行口或COM口。

有的台式电脑带有两个串行口,分别称为COM1、COM2口。

大部分的笔记本电脑也带有串行口。

随着USB接口的普及,串行口的地位逐渐变低了。

但是,作为设备间的一种简便的通信方式,在相当长的时间内,串行口还不会消失。

因为简单且常用的串行通信只需要三根线(发送线、接收线和地线),所以,串行通信可以作为MCU与外界通信的简便方式之一。

大部分嵌入式MCU都具有串行通信接口(Serial Communication Interface,SCI),掌握SCI的编程是学习MCU的重要内容之一。

本章从掌握规范的SCI基本编程角度讨论串行通信编程,把与芯片型号相关内容和与芯片型号无关内容区别开来,便于读者融会贯通与实际应用。

本章7.1、7.2节是与芯片无关的有关串行通信的通用基础知识,只有理解这些基础知识,才能进行串行通信的应用。

7.3、7.4节阐述GP32芯片的SCI模块的编程方法,在此基础上,重点掌握7.5节给出的编程实例。

注意,在汇编程序中,只有初始化子程序与GP32相关,收发程序在整个08系列中是通用的,在C程序中,只有初始化子程序与GP32相关,收发程序对任何芯片是通用的。

当然,要注意头文件SCI.h相关位的定义。

关于串口程序的测试,最好利用教学资料中提供的PC机方的高级语言源程序进行。

根据自己对高级语言的熟悉程度选用VB、C#、VC或其他高级语言。

实际上,掌握一门PC机方的高级语言编程对嵌入式系统开发是必要的。

7.1异步串行通信的基础知识本节简要概括了串行通信中的通常使用的相关基本概念,为学习MCU的串行接口编程做准备。

对于已经了解这方面知识的读者,可以略读本节。

7.1.1基本概念“位”(bit)是单个二进制数字的简称,是可以拥有两种状态的最小二进制值,分别用“0”和“1”表示。

在计算机中,通常一个信息单位用8位二进制表示,称为一个“字节”(byte)。

数字信号处理 串行通信接口(SCI)

数字信号处理  串行通信接口(SCI)
较高,通常应用于11个或更少字节的数据块传送。而数据块较 大时推荐使用空闲线模式。
12
SCI的增强特性
SCIFIFO描述 发送器与接收器各有16级FIFO,有3个专门的寄存器控制; 复位时,SCI工作于标准模式,禁止FIFO功能。
自动波特率检测 自动检测SCI通信的波特率,并刷新BRR寄存器。
(BRR+1)×8
注意:如果BRR=0,则波特率=LSPCLK/16.
SCICLK×8
1≤BRR≤65535,如果BRR=0,等同于BRR=1
BRR
SYSCLKOUT/4
6
SCI多处理器通信
在同一条串行连线上,多处理器通信模式允许一个处理器 (主机)向串行线上其它处理器(从机)发送数据。
一条串行线上每刻只能有一个节点发送数据(发送使能控 制),但可以多个节点同时接收数据。 1、地址字节
13
第7章 DSP片上串行通信外设
7.3 串行通信接口(SCI)
串行通信概述
串行通信:通信线上既传输数据信息,也传输联络信息,因 此收发双方就必须要有通信协议。特点是串行传输成本低, 适用于远距离通信,但传输速度低。 串行通信分类:1)同步通信;2)异步通信。
同步通信:发送器和接收器通常使用同一时钟源来同步。方法是在发送器 发送数据时同时包含了时钟信号,接收器利用该时钟信号进行接收。 异步通信:收发双方的时钟不是同一个时钟,是由双方各自的时钟实现数 据的发送和接收。但要求双方使用同一标称频率,允许有一定偏差。 同步方法:要正确传输字符,准确读取每一位是必须用各自的时钟同步的, 为克服不同时钟的偏差,每个字符都有一个起始位进行同步。
方法二: 利用TXWAKE位产生11位的空闲时间 1)首先置位TXWAKE(SCICTL1.3),控制数据发送特征; 2)写一个数据字节(内容不重要)到SCITXBUF,发送一个

单片机原理及接口技术 第七章 串行口- -

单片机原理及接口技术 第七章 串行口- -

通用 标志位
空闲控制位 0:正常方式 1:空闲方式
掉电控制位 0:正常方式 1:掉电方式
波特率选择位 SMOD=1时, 方式1、2、 3 的波特率加倍
图7-6 PSCON中各位定义
三、MCS-51串行口的工作方式及波特率 波特率的计算 :
模式0 模式1 模式2 模式3
方式0中:波特率固定不变,为振荡器频率fosc的1/12。 方式2中:当PCON中的D7位SMOD为O时,波特率取振荡器频率
第三节 MCS-51串行口的应用 例7-1 用8051串行口工作在方式0,外接CD4094扩展8位并行口 如图7-10所示,8位并行口各位都接一个发光二极管显示器 (共阴极连接),试编程,要求发光二极管从左到右以一定延 时轮流显示,且不断循环。CD4094的STB为控制端,STB=0: 允许串行数据从DATA输入,不允许并行输出;STB=1:不允 许串行数据输入,允许8位数据并行输出。
甲机子程序 SUBJA :CPL SCON.1
CLR ES RETI
;置串行口为方式1 ;置T1为方式2
;送时间常数
;启动T1 ;开CPU中断 ;开串行口中断 ;取数 ;启动串行口发送 ;等待中断
;清除中断标志 ;禁止串行口中断
乙机主程序:
ORG 0000H
LJMP MAINYI
ORG 0023H
RXD TXD P1.0
图7-10 8051串行口扩展LED显示器
ORG 0000H AJMP MAIN ORG 0023H AJIMP SUBS0 ORG 8000H MAIN:MOV SCON,#00H MOV A,#80H CLR P1.0 MOV SBUF,A SJMP $ SUBS0:SETB P1.0 ACALL DELAY CLR TI RR A CLR P1.0 MOV SBUF,A RETI DELAY:…

sci串行通信接口工作原理

sci串行通信接口工作原理

sci串行通信接口工作原理
SCI(Serial Communication Interface)是一种串行通信接口,用于在数字系统中进行串行数据传输。

SCI通常包括发送和接收端,通过串行方式传递数据,它在嵌入式系统和通信领域中被广泛使用。

以下是SCI串行通信接口的基本工作原理:
1.帧结构:SCI通信以帧为单位,每一帧包含了一定数量的比特,通常包括起始位、数据位、奇偶校验位(可选)、停止位等。

这种帧结构有助于接收端正确解析和识别数据。

2.波特率设置:波特率是SCI通信的速率,表示每秒传输的比特数。

在SCI通信中,发送端和接收端必须配置相同的波特率,以确保数据的正确传输。

3.起始位和停止位:为了使接收端能够准确识别帧的起始和结束,通常在每帧的开始设置一个起始位,结束时设置一个或多个停止位。

4.数据传输:数据以二进制形式传输,由发送端按照事先定义好的帧结构进行发送。

接收端在正确配置的情况下,能够识别并解析这些帧,将二进制数据还原为原始数据。

5.同步机制:为确保数据的同步传输,通常在帧的开始设置一个起始位,作为同步信号,帮助接收端正确解析后续的数据。

6.协议选择:在SCI通信中,数据的传输可以使用不同的协议,例如异步传输和同步传输。

异步通信不需要与时钟同步,而同步通信则需要与外部时钟同步。

总体而言,SCI串行通信接口通过在帧中使用起始位、数据位、停止位等结构,按照事先定义好的协议传输数据。

这种方式具有灵活性和可靠性,适用于许多嵌入式系统和通信场景。

嵌入式系统中常见的通信接口介绍与实践

嵌入式系统中常见的通信接口介绍与实践

嵌入式系统中常见的通信接口介绍与实践嵌入式系统是一种专门设计用于控制特定任务的计算机系统。

通信接口是嵌入式系统中非常重要的一个组成部分,它负责将系统与外部设备进行数据传输和通信。

在本文中,我们将介绍一些常见的嵌入式系统通信接口,并探讨它们的特点以及在实践中的应用。

串口是嵌入式系统中最简单且最常见的通信接口之一。

它通过一组电线来进行数据传输,包括一个传输数据线、一个接收数据线和一个用于控制信号的线。

串口通信速度相对较慢,但它在短距离通信和与其他设备(如传感器、显示器等)的数据传输中非常便捷。

I2C(Inter-Integrated Circuit)是另一个常见的嵌入式系统通信接口。

它通常用于连接多个芯片或传感器,使它们可以在同一总线上进行通信。

I2C接口只需两根传输数据的线(SDA和SCL),并且可以通过对设备进行编址来与不同的设备进行通信。

I2C通信速度相对较快,适合连接多个设备的应用场景。

SPI(Serial Peripheral Interface)是一种高速的串行通信接口,常用于连接嵌入式系统和外围设备(如存储器、显示器、模拟转换器等)。

SPI接口可以同时传输和接收数据,具备多主机和多从机的功能。

它通过四根线(SCK、MISO、MOSI、SS)来进行通信,其中SCK是时钟线,MISO是主机接收线,MOSI是主机传输线,SS是片选线。

SPI通信速度非常快,适用于对实时性要求较高的场景。

CAN(Controller Area Network)是一种用于实时通信的串行总线协议。

它一般用于汽车、工业控制和航空等领域。

CAN接口使用DLC(数据连接层)和物理层来实现通信。

它具有高可靠性和抗干扰性,并且能够在复杂的电磁环境下工作。

CAN通信速度较快,可以在多设备之间进行高效的数据传输和通信。

除了上述常见的嵌入式系统通信接口,还有许多其他的接口,如 Ethernet、USB、Bluetooth等,它们在不同的应用场景中具有各自的特点和优势。

7第七章 串行通信接口《单片机原理与项目实践——基于C语言》课件

7第七章 串行通信接口《单片机原理与项目实践——基于C语言》课件
串行口结构框图
7.2 串行接口寄存器
串行口的发送和接收都是以特殊功 能寄存器SBUF的名义进行读或写的,当 向SBUF发“写”命令时(执行SBUF= 数据;)即是向发送缓冲器SBUF装载并 开始由TXD引脚向外发送的一帧数据, 发送完便使发送中断标志位TI=1。
7.2 串行接口寄存器
7.2.2 串行口控制寄存器
2 电路图 3 程序
7.7 串口应用实例
例7.3 甲乙两个单片机进行通信,要求: (1)甲机通过按键K1可以控制乙机的 LED1、
LED2的亮灭; (2)乙机通过按键K2可以向甲机发送数字,
1 并程显序示分在析甲机的数码管上;
2 电路图
3 程序
7.8 小 结
1.以字符或字节为单位组成数据帧进行的 传送称为异步通信,以数据块为单位连续 进行的传送称为同步通信。 2.在串行通信的编程中,如果是方式1和方 式3,初始化程序中必须对定时计数器T1 进行初始化编程以选择波特率。
控制MCS-51单片机串行口控制寄存器 共有两个:特殊功能寄存器SCON和PCON。 SCON和PCON选口地址分别为98H和87H, SCON用于控制和监视串行口的工作状态, 可以位寻址。MCS-51单片机串行通信的方 式选择、接收与发送控制及串行口的标志均 由SCON控制和指示,PCON为电源控制寄 存器,没有位寻址功能。
第七章 串行通信接口
7.1 串行通信简介
2. 同步通信
同步通信是一种连续串行传送数据的 通信方式,一次通信只传送一帧信息。这 里的信息帧与异步通信中的字符帧不同, 通常含有若干个数据字符。它们均由同步 字符、数据字符和校验字符(CRC)组成。
7.2 串行接口寄存器 7.2.1 串行口内部结构
7.4 RS-232标准及其应用 MAX232连线图与引脚图

串行通信接口(SCI)

串行通信接口(SCI)

SCI的特性: (1)两个I/O引脚:SCIRXD与SCITXD (2)一个16位的波特率选择寄存器可编程,可得到
65536种的不同速率。
(3)1~8位的可编程数据位。 (4)长度为1位或2位的可编程停止位。 (5)内部产生的串行时钟。 (6)四个错误的检测标志:
奇偶性错误、超限错误、帧错误、间断检测 (7)两种唤醒多处理器模式:
}
void main(void)
{ SCSR1=81FE; WDCR=0x6f; Sci_init();
//系统初始化,40MHz //关闭WD //SCI初始化
while (1)
{
while((SCIRXST&0x40) != 1) {;}//RXRDY=1表示接收到 数据
RecieveChar=SCIRXBUF; SCITXBUF = RecieveChar;
SCICTRL1 SCI控制寄存器1
SCIHBAUD 波特率选择寄存器高8位
SCILBAUD 波特率选择寄存器低8位
SCICTRL2 SCI控制寄存器2
SCIRXST SCI接收器状态寄存器
SCIRXEMU SCI仿真数据缓冲寄存器
SCIRXBUF SCI接收器数据缓冲寄存器
SCITXBUF SCI发送数据缓冲寄存器
5. 空闲线多处理器模式
• 数据块与数据块之间通过较长的空闲时间分开,而且这个 空闲时间比数据块内部帧与帧之间的空闲时间长得多。
• 空闲线协议通过在某一帧之后使用10位或更多的空闲时间 来指示一个新数据块的开始。
空闲线多处理器模式的数据格式
6. 地址位多处理器模式
• 帧信息的最后一个数据位后紧跟着一个称之为地址位 的附加位。
SCI优先级控制寄存器(SCIPRI)

嵌入式系统实验报告-串行通信实验

嵌入式系统实验报告-串行通信实验

《嵌入式系统实验报告》串行通信实验南昌航空大学自动化学院050822XX 张某某一、实验目的:掌握μC/OS-II操作系统的信号量的概念。

二、实验设备:硬件:PC机1台;MagicARM2410教学实验开发平台台。

软件:Windows 98/2000/XP操作系统;ADS 1.2集成开发环境。

三、实验内容:实验通过信号量控制2个任务共享串口0打印字符串。

为了使每个任务的字符串信息(句子)不被打断,因此必须引入互斥信号量的概念,即每个任务输出时必须独占串口0,直到完整输出字符串信息才释放串口0。

四、实验步骤:(1)为ADS1.2增加DeviceARM2410专用工程模板(若已增加过,此步省略)。

(2)连接EasyJTAG-H仿真器和MagicARM2410实验箱,然后安装EasyJTAG-H仿真器(若已经安装过,此步省略),短接蜂鸣器跳线JP9。

(3)启动ADS 1.2,使用ARM Executable Image for DeviceARM2410(uCOSII)工程模板建立一个工程UART0_uCOSII。

(本范例在ADS文件夹中操作)(4)在ADS文件夹中新建arm、Arm_Pc、SOURCE文件夹。

将μC/OS 2.52源代码添加到SOURCE文件夹,将移植代码添加到arm文件夹,将移植的PC服务代码添加到Arm_Pc文件夹。

(5)在src组中的main.c中编写主程序代码。

(6)选用DebugRel生成目标,然后编译链接工程。

(7)将MagicARM2410实验箱上的UART0连接跳线JP1短接,使用串口延长线把MagicARM2410实验箱的CZ11与PC机的COM1连接。

注意:CZ11安装在MagicARM2410实验箱的机箱右侧。

(8)PC机上运行“超级终端”程序(在Windows操作系统的【开始】->【程序】->【附件】->【通讯】->【超级终端】),新建一个连接,设置串口波持率为115200,具体设置参考图3.5,确定后即进入通信状态。

《嵌入式网络技术》串行通信基础

《嵌入式网络技术》串行通信基础
同步通信依靠同步字符保持通信同步。
同步通信是由1~2个同步字符和多字节数据位 组成,同步字符作为起始位以触发同步时钟开 始发送或接收数据;多字节数据之间不允许有 空隙,每位占用的时间相等;空闲位需发送同 步字符。
串行通信基础——同步通讯
以数据块(帧)为传输单位 双方使用同一时钟(主控方提供时钟,被控方接收时钟) 外同步:时钟信号另外安排一根传输线 自同步:发送时将时钟信号与数据混合编码,接收时译码出 时钟 数据格式:每个数据块前加1~2个同步字符(同步头)进行 帧同步,一般采用CRC循环冗余校验码 同步通信的数据传输效率和传输速率较高,但硬件电路比较 复杂 串行同步通信主要应用在网络当中,最常使用的同步通信协 议有高级数据链路控制协议(HDLC)
串行通信基础——异步通讯
异步通信依靠起始位、停止位保持通信同步。 异步通信数据传送按帧传输,一帧数据包含起 始位、数据位、校验位和停止位。
异步通信对硬件要求较低,实现起来比较简单、灵活, 适用于数据的随机发送/接收,但因每个字节都要建立 一次同步,即每个字符都要额外附加两位,所以工作 效率较低。
串行通信基础——同步通讯
谢谢大家收看!
嵌入式网络技术
串行通信基础
计算机与外界信息交换称为通信。
串行通信是数据的各位依次逐位发送或接收。 并行通信是数据的各位同时发送或同时接收; 通信的基本方式可分为并行通信和串行通信: 并行通信优点:传送速度快
缺点:不便长距离传送 串行通信优点:便于长距离传送
缺点:传送速度较慢
串行通信基础
串行通信的基本特征是数据逐位顺序进行传送 串行通信的格式及约定(如:同步方式、通讯速率、数据 块格式、信号电平……等)不同,形成了多种串行通信的协 议与接口标准。 串行通信时的数据、控制和状态信息都使用同一根信号线 传送

嵌入式技术基础与实践复习题参考答案

嵌入式技术基础与实践复习题参考答案

嵌入式技术基础与实践(第二版)习题参考答案目录嵌入式技术基础与实践(第二版) (1)习题参考答案 (1)第 1 章概述习题参考答案. (2)第 2 章 FreescaleS08微控制器习题参考答案 (3)第 3 章第一个样例程序及工程组织习题参考答案. (4)第 5 章串行通信接口SCI 习题参考答案 (6)第 6 章 GPIO的应用实例—键盘、LED与 LCD习题参考答案 (9)第 7 章定时器模块习题参考答案 (10)第 8 章串行外设接口SPI 习题参考答案 (11)第 9 章 Flash 存储器在线编程习题参考答案 (13)第 1章概述习题参考答案1.嵌入式系统的基本含义是什么?为什么说单片机是典型的嵌入式系统?答:即 MCU的含义是:在一块芯片上集成了中央处理单元( CPU)、存储器( RAM/ROM等)、定时器 / 计数器及多种输入输出( I/O )接口的比较完整的数字处理系统。

大部分嵌入式系统以 MCU为核心进行设计。

MCU从体系结构到指令系统都是按照嵌入式系统的应用特点专门设计的,它能很好地满足应用系统的嵌入、面向测控对象、现场可靠运行等方面的要求。

因此以MCU为核心的系统是应用最广的嵌入式系统。

2.简述嵌入式系统的特点以及应用领域。

答:嵌入式系统属于计算机系统,但不单独以通用计算机的面目出现 ; 嵌入式系统开发需要专用工具和特殊方法 ; 使用 MCU设计嵌入式系统,数据与程序空间采用不同存储介质 ; 开发嵌入式系统涉及软件、硬件及应用领域的知识 ; 嵌入式系统的其他特点 , 比如紧的资源,较高稳定性要求,低功耗,低成本等。

一般用于工业控制,智能家电,日常电子等领域。

4.比较 MCU与 CPU的区别与联系。

答: CPU是一个单独的PC处理器。

而MCU,则有微处理器,存储器(RAM/ROM等)、定时器 / 计数器及多种输入输出(I/O )接口的比较完整的数字处理系统。

所以可以这么说,MCU是一个包含微处理器的嵌入式系统,而CPU紧紧是一个处理器而已。

第7章 串行通信接口SCI

第7章 串行通信接口SCI

1200、1800、2400、4800、9600、19200、38400。
《嵌入式技术基础与实践》
(3)奇偶校验
字符奇偶校验检查(character parity checking)称为垂直冗余
检查( vertical redundancy checking,VRC),它是每个字符增加一个 额外位使字符中“1”的个数为奇数或偶数。 奇校验:如果字符数据位中“1”的数目是偶数,校验位应为“1”,如果
SCI通常采用NRZ数据格式,即:standard non-return-zero mark/space data format,译为:“标准不归零传号/空号数据格 式”。“不归零”的最初含义是:用正、负电平表示二进制值,不使 用零电平。“mark/space”即“传号/空号”分别是表示两种状态的 物理名称,逻辑名称记为“1/0”。下图给出了 8位数据、无校验情 况的传送格式。
SCS1的地址是:$0016 ,定义为:
数据位 定义(只读) D7 SCTE D6 TC D5 SCRF D4 IDLE D3 OR D2 NF D1 FE D0 PE
复位
1
1
0
0
0
0
0
发送缓冲区 空标志位
发送完成 标志位
接收器空 闲标志位
接收器噪 声标志位
接收器奇 偶错误标 志位
0
接收器满 标志位
用于测试
唤醒条件位
《嵌入式技术基础与实践》
(3) SCI控制寄存器2(SCI Control Register 2, SCC2)
SCC2的地址是:$0014 ,定义为:
数据位 定义 D7 SCTIE D6 TCIE D5 D4 D3 TE D2 RE D1 RWU D0 SBK
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

接收器溢 出标志位
接收器帧错 误标志位
《嵌入式技术基础与实践》
(6) SCI状态寄存器2(SCI Status Register 2, SCS2 )
SCS2的地址是:$0017 ,定义为:
数据位 D7 D6 D5 D4 D3 D2 D1 D0
定义(只读)
复位 0 0
BKF
RPF
0
未定义
0
0
0
0
0
终止码标志位
;串行发送A中的数
BRCLR 7,SCS1,* STA SCDR ;SCS1.7=0? 为0则等待 ;SCS1.7=1,可以发送数据
;查询方式接收一个串行数据,接收的数据放入寄存器A中
BRCLR 5,SCS1,*
LDA SCDR
;SCS1.5=0? 为0则等待
;SCS1.5=1,可以取出数据
返回
《嵌入式技术基础与实践》
D5 SCP1
D4 D3 D2 D1 D0 SCP0 x SCR2 SCR1
0
0
0
0
0
0
《嵌入式技术基础与实践》
(1)SCI波特率寄存器(SCI Baud Rate Register, SCBR)
D2~D0 — SCR:波特率选择位(SCI Baud Rate Select Bits),定义 波特率另一分频值,记为:BD,定义如下: SCR2、1、0 =000 BD = 1 001 2 010 011 100 101 110 111 4 8 16 32 64 128
设fSCI为串行通信时钟源频率,fSCI= fBUS或CGMXCLK,取决于 CONFIG2的SCIBDSRC,一般设定SCIBDSRC=1,SCI用内部总线时钟,则 fSCI= fBUS,则波特率的定义公式为: Bt=fBUS /(64×PD×BD)
《嵌入式技术基础与实践》
(2) SCI控制寄存器1(SCI Control Register 1,SCC1)
“1”的数目是奇数,校验位应为“0”。
偶校验:如果字符数据位中“1”的数目是偶数,则校验位应为“0”,如 果是奇数则为“1”。
《嵌入式技术基础与实践》
(4)串行通信的传输方式
单工(Simplex):数据传送是单向的,一端为发送端,另一端为接收 端。这种传输方式中,除了地线之外,只要一根数据线就可以了。有线广播 就是单工的。 全双工(Full-duplex):数据传送是双向的,且可以同时接收与发送 数据。这种传输方式中,除了地线之外,需要两根数据线,站在任何一端的 角度看,一根为发送线,另一根为接收线。一般情况下,MCU的异步串行通 信接口均是全双工的。 半双工(Half-duplex):数据传送也是双向的,但是在这种传输方式 中,除了地线之外,一般只有一根数据线。任何一个时刻,只能由一方发送 数据,另一方接收数据,不能同时收发。在freescale的HC08系列MCU中, 监控模式的通信就采用这种方式。
开始位 第0 位 第1 位 第2 位 第3 位 第 4 位 第5 位 第6 位 第7 位 停止位
SCI数据格式
《嵌入式技术基础与实践》
(2)串行通信的波特率
波特率(baud rate):每秒内传送的位数。 波特率单位是位/秒,记为bps。通常情况下,波特率 的单位可以省略。通常使用的波特率有300、600、900、
数据位 定义 复位
DMARE DMATE ORIE 0 0 0
发送位8 接收位8
DMA发送 允许位
接收器噪 声错误中 断允许位
接收器奇偶错 误中断允许位收器溢出 中断允许位
《嵌入式技术基础与实践》
(5) SCI状态寄存器1(SCI Status Register 1, SCS1 )
发送反转 标志位
唤醒条件位
《嵌入式技术基础与实践》
(3) SCI控制寄存器2(SCI Control Register 2, SCC2)
SCC2的地址是:$0014 ,定义为:
数据位 定义 D7 SCTIE D6 TCIE D5 D4 D3 TE D2 RE D1 RWU D0 SBK
SCRIE ILIE
《嵌入式技术基础与实践》
7.1.2 RS-232C总线标准
MCU引脚一般输入/输出使用TTL电平,而TTL电平的“1”和“0” 的特征电压分别为2.4V和0.4V,适用于板内数据传输。为了使 信号传输得更远,美国电子工业协会EIA(Electronic Industry Association) 制订了串行物理接口标准RS-232C。RS-232C 采用负逻辑,-3V~-15V为逻辑“1”,+3V~+15V为逻辑“0”。 RS-232C最大的传输距离是30m,通信速率一般低于20Kbps。
MCU 的 内 部 总 线 (Internal Bus)
SCI 控制寄存器
SCI状态寄存器 SCI编程模型
SCI波特率寄存器
返回
《嵌入式技术基础与实践》
7.3 GP32 SCI模块寄存器
SCI的寄存器
MC68HC908GP32的SCI有7个寄存器,地址为$0013~$0019 。
(1)SCI波特率寄存器(SCI Baud Rate Register,SCBR)
《嵌入式技术基础与实践》
7.1.2 RS-232C总线标准
RS-232接口,简称“串口”, 它主要用于连接具有同样接口的室 内设备。目前几乎所有计算机上的 串行口都是9芯接口。右图给出了9 芯串行接口的排列位置,相应引脚
9芯串行接口排列 6 7 2 8 9 4 5
1
3
含义见表7-1。
表7-1 9芯串行接口引脚含义表 引脚 功 能 号 1 2 3 4 5 返回 接收线信号检测(载波检 测DCD) 接收数据线(RXD) 发送数据线(TXD) 数据终端准备就绪( DTR) 信号地(SG) 引脚 功 能 号 6 7 8 9 数据通信设备准备就 绪(DSR) 请求发送(RTS) 清除发送 振铃指示
第三步:写控制字到SCI控制寄存器2(SCC2)。
LDA #%00001100 STA SCC2 ;设置允许发送、允许接收,查询方式收发
《嵌入式技术基础与实践》
(2)发送一个数据与接收一个数据
发送数据是通过判断状态寄存器SCS1的第7位(SCTE)进行的,而 接收数据是通过判断状态寄存器SCS1的第5位(SCRF)进行的。不论 是发送还是接收,均使用SCI数据寄存器SCDR。发送时,将要发送的数 据送入SCDR即可,接收时,从SCDR中取出的即是收到的数据。
第7章 串行通信接口(SCI)
主要内容

异步串行通信的基础知识 电平转换电路与SCI通用编程原理
GP32SCI模块寄存器
串行口初始化与收发编程的基本方法 串行通信通用函数与测试实例

串行通信进一步讨论
《嵌入式技术基础与实践》
7.1异步串行通信的基础知识
7.1.1 基本概念
(1)异步串行通信的格式
7.5 串行通信通用函数与测试实例
7.5.1 串行通信子程序
串行通信头文件 SCI.h 串行通信驱动文件 SCI.c
《嵌入式技术基础与实践》
串行通信头文件 SCI.h
//[SCI.h]串行通信头文件-------------------------#include "GP32C.h" //GP32 MCU映像寄存器名定义 #include "Type.h" //类型别名定义 #define ReSendStatusR SCS1 //SCI状态寄存器 #define ReTestBit 5 //接收缓冲区满标志位 #define SendTestBit 7 //发送缓冲区空标志位 #define ReSendDataR SCDR //数据寄存器 //串行通信函数声明 void SCIinit(void); //串行口初始化 void SCIsend1(INT8U o); //发送1字节 void SCIsendN(INT8U n, INT8U ch[]); //发送n字节 INT8U SCIre1(INT8U *p); //接收1字节 INT8U SCIreN(INT8U n, INT8U ch[]); //接收n字节 _____________________________________________
1200、1800、2400、4800、9600、19200、38400。
《嵌入式技术基础与实践》
(3)奇偶校验
字符奇偶校验检查(character parity checking)称为垂直冗余
检查( vertical redundancy checking,VRC),它是每个字符增加一个 额外位使字符中“1”的个数为奇数或偶数。 奇校验:如果字符数据位中“1”的数目是偶数,校验位应为“1”,如果
《嵌入式技术基础与实践》
7.2电平转换电路与SCI通用编程原理
7.2.1 SCI的外围硬件电路
具 有 SCI 接 口 的 MCU , 一 般 具 有 发 送 引 脚 (TxD) 与 接 收 引 脚 (RxD),不同公司或不同系列的MCU,使用的引脚缩写名可能不 一致,但含义相同。SCI的外围硬件电路,主要目的是将MCU的 发送引脚TxD与接收引脚RxD的TTL电平,通过RS-232电平转 换芯片转换为RS-232电平。下图给出一个基本SCI电平转换电 路。 TTL电平 232电平
7.4 串行口初始化与收发编程的基本方 法
(1)SCI初始化
对SCI进行初始化,最少由以下三步构成:
第一步:定义波特率。
LDA #%00000010 STA SCBR ;总线频率fBUS=2.4576MHz,定义波特率Bt=9600
第二步:写控制字到SCI控制寄存器1(SCC1)。
LDA #%01000000 STA SCC1 ;设置允许SCI,正常码输出、8位数据、无校验
相关文档
最新文档