61阅读

什么是数字信号-19什么是数字信号处理

发布时间:2017-08-30 所属栏目:电子数码

一 : 19什么是数字信号处理

什么是数字信号处理?有哪些应用?

利用数字计算机或专用数字硬件、对数字信号所进行的一切变换或按预定规则所进行的一切加工处理运算。例如:滤波、检测、参数提取、频谱分析等。

对于DSP:狭义理解可为Digital Signal Processor 数字信号处理器。广义理解可为Digital Signal Processing 译为数字信号处理技术。在此我们讨论的DSP的概念是指广义的理解。

? 数字信号处理是利用计算机或专用处理设备,以数字形式对信号进行采集、变换、滤波、估值、增强、

压缩、识别等处理,以得到符合人们需要的信号形式。

? 信号处理的实质是对信号进行变换。

? 信号处理的目的是获取信号中包含的有用信息,并用更直观的方式进行表达。

DSP的应用几乎遍及电子学每一个领域。

▲ 通用数字信号处理器:自适应滤波,卷积,相关,数字滤波,FFT, 希尔伯特变换,波形生成,窗函数等等。

▲ 语音信号处理:语音增强、识别、合成、编码、信箱等,文字/语音转换

▲ 图形/图像处理:三维动画,图象鉴别/增强/压缩/传输,机器人视觉等等图

▲ 特殊应用数字信号处理:振动和噪声分析与处理,声纳和雷达信号处理, 通信信号处理, 地震信号分析与处理,汽车安全及全球定位,生物医学工程等等。

在医疗、军事、汽车等行业,以及通信市场、消费类电子产品等中具有广阔的市场前景。

数字信号处理系统的基本组成:前置预滤波器(PrF)、a/d变换器(ADC)、数字信号处理器(DSP)、d/a变换器(DAC)、模拟滤波器(PoF)

数字信号处理特点:

1.大量的实时计算(FIR IIR FFT),

2.数据具有高度重复 (乘积和操作在滤波、卷积和FFT中等常见)

数字信号处理技术的意义、内容

数字信号处理技术是指数字信号处理理论的应用实现技术,它以数字信号处理理论、硬件技术、软件技术为基础和组成,研究数字信号处理算法及其实现方法。

意义:

? 在21世纪,数字信号处理是影响科学和工程最强大的技术之一

? 它是科研人员和工程师必须掌握的一门技巧

DSP芯片及其特点

▲ 采用哈佛结构体系:独立的程序和数据总线,一个机器周期可同时进行程序读出和数据存取。 对应的:冯 · 诺依曼结构。

▲ 采用流水线技术:

▲ 硬件乘法器:具有硬件连线的高速“与或”运算器

▲ 多处理单元:DSP内部包含多个处理单元。

▲ 特殊的DSP指令:指令具有多功能,一条指令完成多个动作; 如:倒位序指令等

▲丰富的外设 ▲功耗低 :一般DSP芯片功耗为0.5~4W。采用低功耗技术的DSP芯片只有0.1W/3.3V、1.6V(电池供电)

DSP芯片的类别和使用选择

▲ 按特性分:以工作时钟和指令类型为指标分类▲ 按用途分:通用型、专用型DSP芯片

▲ 按数据格式分:定点、浮点 各厂家还根据DSP芯片的CPU结构和性能将产品分成若干系列。

TI公司的TMS320系列DSP芯片是目前最有影响、最为成功的数字信号处理器,其产品销量一直处于领先地位,公认为世界DSP霸主。

? 目前市场上的DSP芯片有:

? 美国德州仪器公司(TI):TMS320CX系列 占有90%

? 还有AT&T公司dsp16,dsp32系列

? Motorola公司的dsp56x,dsp96x系列

? AD公司的ADSP21X,ADSP210X系列

定点芯片:▲ TMS320C2000系列 √ TMS320C20X: C203, F206

√ TMS320C24X: LF2407 √ TMS320C28X: F2810, F2812

▲ TMS320C5000系列: C5402, C5410, C5509▲ TMS320C6000: C6204, C6416, C6455

浮点芯片:

▲ TMS320C3X: C30, C31, C32, VC33▲ TMS320C4X: C40, C44

▲ TMS320C67XX: C6701, C6711, C6712 多处理芯片:

▲ TMSC8X: C80, C82

使用选择:

▲ 性能: 描述DSP性能的最重要的技术指标是运算速度

▲ 片内硬件资源:包括片内RAM、ROM的数量、I/O接口、总线、驱动能力、外部可扩展的程序和数据空间等等

▲ 价格:量大价格便宜,厂家主推的产品,价格便宜。

DSP的应用领域

? 1.网络

? 2.无线通信

? 3.家电

? 4.另外还有虚拟现实,噪声对消技术,电机控制,图像处理等等

? 可以说DSP是现代信息产业的重要基石,它在网络时代的地位与CPU在PC时代的地位是一样的。 三大类TI的DSP芯片各自的适用领域

TMS320F2812主要特点

▲ 高性能静态CMOS技术:150MHz时钟、低功耗设计、编程电压3.3V。

▲ JTAG边界扫描(Boundary Scan)支持

▲ 高性能的32位中央处理器:哈佛总线结构、双16位乘加单元、迅速的中断响应和处理

▲ 片内存储器:128KFlash、2个4K的随机存储器、1个8K的SARAM,2个1K的SARAM

▲ 根只读存储器(Boot ROM)4K×16位

▲ 外部存储器接口:可编程等待状态:

▲ 时钟与系统控制:片上振荡器、看门狗定时器模块

▲ 三个外部中断

▲ 外部中断扩展(PIE)模块 :可支持45个外部中断

▲ 128位的密钥

▲ 3个32位的CPU定时器

▲ 马达控制外围设备:两个事件管理器

▲ 串口外围设备:SPI /SCI/ UART/eCAN/McBSP

▲ 12位的ADC,16通道:80ns/12.5MSPS

▲ 有56个独立的可编程、多用途通用输入/输出(GPIO)引脚

▲ 高级的仿真特性:分析和设置断点的功能,实时硬件调试功能

▲ 开发工具: ANSI C/C++编译器/汇编程序/连接器、支持TMS320C24x/240x的指令、代码编辑集成环境、DSP/BIOS、硬件评估板

2812外设资源有哪些,“外设”???

? 主要包括配置寄存器、输入寄存器、输出寄存器和状态寄存器。每个外设只要通过简单的访问存储器中

的寄存器就可以使用该设备。

外设:事件管理器 通用I/O 模数转换模块 SPI和SCI通信接口 CAN总线通信模块 看门狗 PLL时钟模块 多通道缓冲串口 外部中断接口 存储器及其接口

1、F2812 的片内资源

2812有3 个 32位的 CPU定时器,支持动态的改变锁相环的频率,有片内振荡器和看门狗定时器模块。2812具有 3个外部中断,但是 2812具有外部中断的扩展模块(PIE),它可支持96个外部中断,不过当前仅仅使用了45个外部中断,其他为保留。具有 128位的密钥,用于保护 FLASH、OTP 和L0、L1 中的内容不被盗读。

2.、F2812 的片内外设 :

1. 2个事件管理器EVA、EVB 2. 2个串行通信接口SCI,标准的UART(SCIA SCIB)。 3. 1个串行外围接口SPI。 4. 改进的CAN通信ECAN。 5. 多通道缓冲串行接口McBSP。 6. 12位的ADC,一共有16 个通道,实现AD转换的功能 7. 最多有56个可独立编程的,多功能复用的GPIO引脚。 8. XINTF外部扩展接口--异步,非复用的总线结构--用于扩展并口外设

2812 组成和功能框图/示意图

▲ 特 点 —— 32位 定点 改进哈佛结构 循环的寻址方式。

▲ 组 成 —— 内核 存储器 片内外设

2812内部总线结构

▲ 存储器接口有3组地址总线:

1.PAB(Program Address Bus)程序地址总线:PAB用来传送来自程序空间的读写地址。PAB是一个22位的总线。

2.DRAB(Data-Read Address Bus)数据读地址总线: 32位的DRAB用来传送来自数据空间的读地址。

3.DWAB(Data-Write Address Bus)数据写地址总线: 32位的DWAB用来传送来自数据空间的写地址。

▲ 存储器接口还有3组数据总线: 1.PRDB(Program-Read DataBus)程序读数据总线:PRDB在读取程序空间时用来传送指令或数据。PRDB是一个32位的总线。2.DRDB(Data-ReadDataBus)数据读数据总线: DRDB在读取数据空间时用来传送数据。DRDB是一个32位的总线。 3.DWDB(Data/Program-WriteDataBus)数据/程序写数据总线: 32位的DWDB在对数据空间和程序空间写数据时用来传送数据。

什么是中断;中断处理过程;

在CPU运行过程中,由于内部或外部某个随机事件的发生,使CPU暂停正在运行的程序,而转去执行处理引起中断事件的程序,完成后返回原来的程序继续执行的过程中断处理过程:

? CPU暂停当前的工作

? 转而去处理中断事情

? 处理完以后,再回到原来被中断的地方,继续原来的工作

? 显然,服务一个中断包括保存当前处理现场,完成中断任务,恢复各寄存器和现场,返回继续执行被暂

时中断的程序。

? 请示CPU中断的请求源称为中断源。这些中断源可以是片内的,如定时器等;也可以是片外的,如A/D

转换及其它片外装置。

2812中断机制;

2812的 CPU为了能够及时有效的处理好各个外设的中断请求,特别设计了一个专门处理外设中断的扩展模块(the Peripheral Interrupt Expansion block),叫做外设中断控制器 PIE,它能够对各种中断请求源(例如来自于外设或者其他外部引脚的请求)做出判断以及相应的决策。

2812的中断是3 级中断机制,分别是外设级,PIE级以及 CPU级,对于某一个具体的外设中断请求,任意一级的不许可, CPU 最终都不会执行该外设中断。就像一个文件需要三级领导批示一样,任意一级领导的不同意,都不能被送至上一级领导,更不可能得到最终的批准,中断机制的原理也是如此。

2812中断控制;(可屏蔽中断处理过程)p134

CPU定时器0的中断实现;p135

什么是GPIO?

General Purpose Input Output 通用数字量输入输出端口

? 什么是GPIO的复用?

数字IO口,外设

? GPxMUX: GPIO的复用控制

Mux控制寄存器(功能选择控制寄存器) 。用来选择这些接脚被拿来当做数字I/O(GPxMUX.bit=0)还是外设I/O(GPxMUX.bit=1)。当DSP重置时,所有I/O 预设为数字I/O。

? 2812 GPIO 引脚分配-----了解物理意义

? 2812各类时钟:晶振时钟、系统时钟、高速外设时钟、低速外设时钟的关系 p100

? PLL/ HISPCP/LOSPCP的作用理解

锁相环(PLL)模块主要用来控制DSP内核的工作频率,外部提供一个参考时钟输入,经过锁相环倍频或分频后提供给DSP内核。C281 x数字信号处理器能够实现0.5~10倍的倍频。

什么是看门狗?理解看门狗的作用

看门狗,又叫watchdog timer,是一个定时器电路, 一般有一个输入,叫喂狗(kicking the dog or service the dog),一个输出到 MCU的 RST 端,MCU正常工作的时候,每隔一端时间输出一个信号到喂狗端,给 WDT 清零,如果超过规定的时间不喂狗,(一般在程序跑飞时),WDT 定时超过,就回给出一个复位信号到MCU,是MCU 复位. 防止MCU 死机. 看门狗的作用就是防止程序发生死循环,或者说程序跑飞。看门 狗主要用来检测软件和硬件的运行状态,当内部计数器溢出时,将产生一个复位信号。为了避免产生不必要的复位,要求用户定期对看门狗定时器进行复位。如果不明的原因使CPU中断程序,看门狗将产生一个复位信号,使CPU复位,程序从系统软件的开始执行。看门狗有效地提高了系统的可靠性。

2812的看门狗电路有一个 8 位的看门狗加法计数器 WDCNTR,无论什么时候,如果WDCNTR 计数到最大值时,看门狗模块就会产生一个输出脉冲,脉冲宽度为 512个振荡器时钟宽度。为了防止看门狗加法计数器

19什么是数字信号处理_什么是数字信号

WDCNTR溢出,我们通常可以采用两种方法:一种是禁止看门狗,即使得计数器 WDCNTR无效;另一种就是定期的“喂狗”,通过软件向负责复位看门狗计数器的看门狗密钥寄存器(8位的WDKEY)周期性的写入 0x55+0xAA,紧跟着 0x55写入 0xAA能够清除 WDCNTR。写任何其他的值都会使看门狗立即复位。

看门狗定时器:如果CPU崩溃,则复位系统

? 看门狗计数器独立与CPU

? 如果计数器溢出则复位或中断被触发

? 为防止计数器溢出,CPU必须周期性的向看门狗KEY寄存器写入0X55+0XAA序列

? 在 复位之后 (30 M外部时钟)3ms之内看门狗必须被启用或者禁止

? 同步、异步串行通信概念

同步就是双方有一个共同的时钟,当发送时,接收方同时准备接收。

异步双方不需要共同的时钟,也就是接收方不知道发送方什么时候发送,所以在发送的信息中就要有提示接收方开始接收的信息,如开始位,结束时有停止位

? 全双工、半双工、单工通信概念

? 1.全双工通信,分别用独立的接口和传输线来发送和接收信号,使发送和接收可同时进行,这称为全双

工通信。

? 2.半双工通信,该方式下,数据可以双向传输,但不能同时、只能交替进行。通过软件和接口的协调控

制,实现传输换向。

? 3.单工通信,它只允许一个方向传递数据。不如前面两种方式应用普遍。

? 2812的SPI特点、作用、 4线制的连接

特点:SPI是一个高速同步串行通信接口,能够实现DSP与外部设备之间的高速串行通信。应用中经常使用SPI接口和扩展外设的移位寄存器、LCD显示以及ADC等外设通信。

? 4个外部引脚:SPISOMI/SPISIMO/SPISTESPICLK

? 2种工作模式:主工作模式、从工作模式

? 波特率:125种不同的可编程速率

? 16级发送和接受FIFO

? 接收和发送可以同步操作,也就是说可以实现全双工通信。当然,发送功能可以通过SPICTL寄存器的

TALK位禁止或使能。

? 通过中断或查询功能实现发送接收操作

? 9个SPI模块控制器

? 增强特点:1. 16级发送/接收FIFO ; 2. 延时发送控制

外设SPI的作用: SPI可以实现CPU同例如FLASH、EEPROM、LCD显示驱动器、网络控制器、AD转换器和DA转换器等外围设备之间的通信,也可以实现同其他CPU之间的通信。

SPI四线制连接

SCK 串行时钟线

MISO 主机输入/从机输出线

MOSI 主机输出/从机输入线

CS 低电平有效的从机选择线

SPI4种时钟配置方法(由时钟极性和时钟相位控制)

? 不带相位延迟的下降沿:SPI在SPICLK高有效,SPI在SPICLK下降沿发送数据,上升沿接受数

? 带有相位延迟的下降沿:SPICLD高有效,SPI在SPICLK的下降沿的前半周期发送数据,下降沿

接受

? 不带相位延迟的上升沿:SPICLK低有效,SPI在SPICLK的上升沿发送数据,下降沿接受数据

? 带有相位延迟的上升沿:SPICLK低有效,SPI在SPICLK的下降沿的前半周期发送数据,下降沿

接受数据

? SPI的环形总线结构和工作原理

之所以 SCI能工作于全双工模式,是因为它有独立的数据发送器和数据接收器,这样能够保证SCI既能够同时进行,也能够独立进行发送和接收的操作。

SCI 发送数据的过程如下:如图 3 右半部分所示,在FIFO 功能使能的情况下,首先,发送数据缓冲寄存器 SCITXBUF 从 TX FIFO中获取由 CPU 加载的需要发送的数据,然后 SCITXBUF 将数据传输给发送移位寄存器TXSHF,如果 SCI的发送功能使能,TXSHF则将接收到的数据逐位逐位的移到SCITXD引脚上。

SCI 接收数据的过程如下:如图 3 的左半部分所示,首先,接收移位寄存器 RXSHF 逐位逐位的接收来自于 SCIRXD 引脚的数据,如果 SCI 的接收功能使能,RXSHF 将这些数据传输给接收缓冲寄存器 SCIRXBUF,CPU就能从 SCIRXBUF读取外部发送来的数据。当然,如果FIFO功能使能的话,SCIRXBUF会将数据加载到RX FIFO的队列中,CPU再从 FIFO的队列读取数据。

? SPI的波特率设定(会读程序)

? SPI的波特率由寄存器SPIBRR来决定,计算公式如下: 当SPIBRR=0,1,2时:

? 当SPIBRR=3~127时:

? InitSpi(void)例程 懂

? void InitSpi(void)

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

{ // Initialize SPI-A: EALLOW; GpioMuxRegs.GPFMUX.all = 0x000F; EDIS; SpiaRegs.SPICCR.all = 0x000F;///进入初始状态,数据在上升沿输出,自测禁止,字符长度16位 SpiaRegs.SPICTL.all = 0x06; //主动模式,禁止中断 SpiaRegs.SPIBRR = 0x000E;//波特率 = LSPCLK/(SPIBRR+1)=15/(14+1)=1Mhz SpiaRegs.SPICCR.all = 0x8F; //退出初始状态 } EALLOW; ………………… // Initalize PLL SysCtrlRegs.PLLCR = 0x000A; //晶振为30MHz,配置CPU为150MHz,原来SPI单独程序中是SysCtrlRegs.PLLCR =0x02; // Wait for PLL to lock for(i= 0; i< 5000; i++){} // HISPCP/LOSPCP prescale register settings, normally it will be set to default values SysCtrlRegs.HISPCP.all = 0x0005; //SPI单独时设置为15MHz,为了定时,改为15MHz SysCtrlRegs.LOSPCP.all = 0x0005; //SPI单独时设置为7.5MHz,为了定时,改为15MHz // Peripheral clock enables set for the selected peripherals. SysCtrlRegs.PCLKCR.bit.EVAENCLK=1; //使能EV-A外设内部的高速时钟,用于QEP功能 // SysCtrlRegs.PCLKCR.bit.EVBENCLK=1; // SysCtrlRegs.PCLKCR.bit.SCIENCLKA=1; // SysCtrlRegs.PCLKCR.bit.SCIENCLKB=1; SysCtrlRegs.PCLKCR.bit.SPIENCLK=1; EDIS;

? 什么是2812的事件管理器

2812具有两个事件管理器模块EVA和EVB, 每个EV模块都具有2个通用定时器、 3个比较单元、 3 个捕获单元以及1 个正交编码电路。

? 组成(三大部分:通用定时器、捕获单元、比较单元)

EVA(GP1/GP2) EVB(GP3/GP4)这些定时器可独立使用:

▲在控制系统中产生采样周期;

▲为捕获单元和正交编码脉冲电路(只针对GP2/4)提供时基;

▲为比较单元和PWM产生电路提供时基。

? 通用定时器的计数器、周期寄存器、比较寄存器;

通用定时器 周期寄存器 TxPR 周期寄存器的值决定定时器的定时周期。当周期定时器的值与计数器的值匹配时,根据计数器的计数模式,通用定时器复位为0或递减计数。

通用定时器比较寄存器 TxCMPR 比较寄存器中的值与通用定时器的计数值进行比较,当比较匹配时,产生: √由GPTCONA/B位的设置决定相关的比较输出信号发生跳变;

√相应的中断标志被置位;

√若中断没有被屏蔽,则产生一个外设中断请求。

通过设置TxCON的相关位,可以使能或禁止比较操作。无论在哪种定时器工作模式(包括QEP模式),比较和输出均可被使能或禁止。

? 通用定时器的四种中断。

通用定时器的中断标志寄存器EVAIFRA、EVAIFRB、EVBIFRA和EVBIFRB中有16个中断标志。每个通用定时器可根据以下4种事件产生中断:

▲ 上溢:定时器计数器的值达到FFFFH,产生上溢中断。此时标志寄存器中的

TxOFINT位(x=1,2,3,4,下同)置1。

▲ 下溢:定时器计数器的值达到0000H,产生下溢中断。此时TxUFINT置1。

▲ 比较匹配:当计数器值与比较器相等时,产生比较匹配中断。此时TxCINT置1。

▲ 周期匹配:当计数器值与周期寄存器相等时,产生周期匹配中断。TxPINT置1。

? 通用定时器的四种工作模式。

▲ 停止/保持模式 通用定时器的操作停止,定时器的计数器、比较输出和预定标计数器均保持当前状态 ▲ 连续增计数模式 通用定时器按照预定标的输入时钟计数,当计数器的值与周期寄存器的值匹配时,在下一个输入时钟的上升沿,通用计数器复位为0,并开始另一个计数周期。计数器的初值可以为0~FFFFh中的任一个

▲ 定向增/减计数模式 通用定时器在定标的输入时钟上升沿开始计数,计数方向由输入引脚TDIRA/B确定:引脚为高时,递增计数,与连续增计数模式相同;引脚为低时,递减计数,从初值递减直到为0,此时若TDIRA/B仍为低,计数器将重新载入周期寄存器的值,并继续计数。

▲ 连续增/减计数模式。 这种模式与定向增/减计数模式基本相同。区别是:

计数方向不再受引脚TDIRA/B的控制,而是在计数值达到周期寄存器的值时或FFFFh(初值大于周期寄存器的值)时,才从增计数变为减计数,而在计数值为0时,从减计数变为增计数。

? 通用定时器如何产生PWM

可通过下列操作产生PWM波形:

√ 根据所需PWM(载波)周期设置TxPR;

√设置TxCON以确定计数器模式和时钟源,并启动PWM输出操作;

√ 根据计算出来的PWM脉冲宽度(占空比)载入TxCMPR寄存器中。

▲ 每一个事件管理器可以同时产生5路PWM信号,包括:

√3路由完全比较单元产生的带有可编程死区的PWM信号

√由定时器比较器产生的2路独立的PWM信号。

▲ 与比较单元相关的PWM电路,主要包括四个功能单元:

√非对称/对称波形发生器

√可编程死区单元

√输出逻辑

√空间矢量(SV)PWM状态机

? 捕获单元可以产生PWM。

? 什么是PWM ?

PWM (脉宽幅度调制)PWM信号是一系列可变脉宽的脉冲信号

? 固定的载波频率

? 固定的放大系数

? 脉冲宽度正比于瞬时放大系数

? 能量损失趋于0

? 比较单元产生的PWM可以编程实现“死区”。什么是“死区”?

所谓死区,就是在一定范围内,有输入信号系统,但没有输出信号或者输出信号很微弱。。换句话说,就是输入量小于这个范围时,控制系统的调节作用很小或者没有调节作用。那么,这个范围就是死区。

捕获单元的作用?什么是QEP ?

用于捕获输入引脚上的跳变。

正交编码脉冲(QEP)电路 :

▲正交编码脉冲(QEP)是两个频率变化且正交的脉冲(相位差90度,即1/4个周期)。

▲ 每个EV模块都有一个QEP电路,如果QEP电路被使能,可以对CAP1/QEP1和CAP2/QEP2或CAP4/QEP3和 CAP5/QEP4引脚上的正交编码脉冲进行解码和计数。

▲ 应用:QEP电路可用于连接一个光电编码器以获得旋转机器的位置和速率等信息。

什么是SCI?作用?连线?(有没有时钟信号)

? SCI属于双线的异步串行通信接口,即平时所说的通用异步收发器 UART(Universal Asynchronous

Receiver/Transmitter)口,并采用NRZ(No-Return-Zero)数据格式,可以通过SCI串行接口与CPU或其他的异步外设进行通信。SCI-A和SCI-B

? 即串行通信接口。是一个双线的异步串口,即具有接收和发送两根信号线的异步串口,即具有接收和发

送两根信号线的异步串口,一般可以看作是UART(通用异步接收/发送装置)。

? 为UART(通用异步接收/发送装置)

? DSP和MCU、PC、某些外设之间的通信

? 2812 SCI模块的特点

? 2个外部引脚:SCITXD/SCIRXD

? 2种工作模式:全双工、半双工

? 波特率:可编程达到64K不同的速率

? 双缓冲接受发送模式

? 16级发送接受 FIFO(发送8bit、接受16bit)

? 自动波特率检测硬件逻辑

19什么是数字信号处理_什么是数字信号

? 2个唤醒多处理器模式

? 空闲线

? 地址位

1 -- 具有 4 个错误检测标志: 极性 (parity) 、 溢出 (overrun) 、 帧 (framing) 、

中断(break)检测。

2 -- 多处理器模式下具有两种唤醒方式:空闲线方式和地址位方式。通常使用

的时候很少遇到多处理器模式,我们采用的是空闲线方式。

3 -- 通信工作于半双工或者全双工模式。

4 -- 具有双缓冲接收和发送功能,接收缓冲寄存器为 SCIRXBUF,发送缓冲寄存

器为 SCITXBUF。

5 -- 发送和接收可以通过中断方式来实现,也可以通过查询方式来实现。

6 -- 具有独立的发送中断使能位和接收中断使能位。

7 -- SCIA 模块具有 13 个控制寄存器,值得注意的是,这些寄存器都是 8 位的

寄存器,当某个寄存器被访问时,数据位于低8位,高8位为0,因此,把数据

写入高 8 位将是无效的。

? 2812的SCI数据格式编程(读懂)

使用SCICCR进行数据格式编程

SciaRegs.SCICCR.bit.SCICHAR=8; //选择数据长度,为8个数据位

SciaRegs.SCICCR.bit.PARITYENA=1; //开启极性功能,值为0的时候取消极性功能SciaRegs.SCICCR.bit.PARITY=0; //在开启极性功能的前提下,该位值为0时选择偶极性,值为1时选择奇极性 SciaRegs.SCICCR.bit.STOPBITS=0; //选择停止位,该位为0时有1个停止位,该位为1时有2个停止位 当然,上述这几个语句,我们也可以合并成如下的语句: SciaRegs.SCICCR.all=0x13;

? 2812 SCI发送和接收数据的机制(程序懂)

? 一种是查询方式,

? 就是程序不断去查询状态标志位,看看SCI是不是已经做好了数据发送或者接收的准备。

? 当数据发送时,需要查询的是位于SCI控制寄存器2(SCICTL2)的第7为TXREADY,发送器缓冲寄存

器就绪标志。当这个位为1的时候,表明发送数据缓冲寄存器SCITXBUF已经准备好开始接收并发送下一个数据了。当数据写入SCITXBUF,TXREADY自动会清零,如果TXENA使能了,发送移位寄存器TXSHF就会把SCITXBUF里面的数据发送出去。

? 当数据接收时,需要查询的是SCI接收状态寄存器(SCIRXST)中的RXRDY,接收器就绪标志。当从

SCIRXBUF寄存器中已经准备好一个字符的数据,等待CPU去读时,RXRDY位就会置1。当数据被CPU从SCIRXBUF读出后,或者系统复位,都可以使RXRDY清0。

if(SciaTx_Ready() == 1)

{

SciaRegs.SCITXBUF =SCI_Senddata;

//SCI_senddata为需要发送的数据

}

if(SciaRx_Ready() == 1)

{

Sci_Receivedata =SciaRegs.SCIRXBUF.all;

//SCI_Receivedata用于存放接收的数据

}

? //发送就绪标志状态查询函数

? int SciaTx_Ready(void)

? {

? unsigned int i;

? if(SciaRegs.SCICTL2.bit.TXRDY == 1)

? {

? i = 1; //返回1说明发送器已经准备就绪,可以接收新的数据进行发送

? }

? Else

? {

? i = 0;

? }

? return(i);

? }

? //接收就绪标志状态查询函数

? int SciaRx_Ready(void)

? {

? unsigned int i;

? if(SciaRegs.SCIRXST.bit.RXRDY == 1)

? {

? i = 1; //返回1说明数据接收已经就绪,等待CPU去读取数据

? }

? else

? {

? i = 0;

? }

? return(i);

? }

?

? 另一种是中断方式。

如果需要使用中断, 必须使能外设自己的中断、 PIE 中断和 CPU 中断。SCIA 的发送和接收中断分别位于 PIE 模块第 9 组的第 1 和第 2 位,同时对应于CPU 中断的 INT9。发送和接收这两个中断标志位都是可以自动清零的,所以无需手动复位。这是和其他外设中断不一样的地方,注意查询函数位于主函数的 for 循环内,这样才能不断的去查询 TXRDY 和 RXRDY 的状态,但是很明显程序运行的效率比较低。但是查询方式较中断方式而言,比较简单。因此,可以建议使用如下的组合,数据接收采用中断方式,而数据发送采用查询方式。

二 : 为什么现代手机比大哥大小巧?仅仅是因为采用了数字信号的缘故吗?

为什么现代手机比大哥大小巧?

仅仅是因为采用了数字信号的缘故吗?


主要是采用了大规模集成电路.可在很大程度上减小体积.

三 : ios7信号怎么变数字?ios7信号变数字方法

我们都知道,ios7系统的iphone手机,信号都是以5个小圆点显示的,但其实有另一种信号是以数字显示,相信很多朋友不知道吧!变成了数字之后看腻了也没关系,同样会有方法把数字改为圆点。那么下面PC6小编就来教大家怎么把ios7信号变数字的具体方法。

第一步:
打开拨号界面,输入*3001#12345#*然后按拨号键,这时候就会弹出一个界面,你就会看到左上角的信号显示是数字了,用手点它就会切换在两种显示模式之间。如下图:

数字信号 ios7信号怎么变数字?ios7信号变数字方法

第二步:
然后我们会进入如下图的这样一个界面,这时我们长按手机的电源键,等出现提示滑动关机的时候,我们再长按手机的HOME键,一直按到屏幕返回手机的桌面即可。

数字信号 ios7信号怎么变数字?ios7信号变数字方法

第三步:

按住主屏幕键直到返回主屏幕,这时就可以了,屏幕左上角的信号是不是变成数字了,很简单吧。
当然ios7信号变成数字后,有些朋友又不喜欢了,想变回5个小圆点那样的信号显示,那该怎么办呢?其实也很简单,打开拨号界面,输入*3001#12345#*,点击呼叫,等出现那个数字显示的界面后,按手机HOME键返回桌面就可以了,这样信号数字又变回5个小圆点了。。

本文标题:什么是数字信号-19什么是数字信号处理
本文地址: http://www.61k.com/1095068.html

61阅读| 精彩专题| 最新文章| 热门文章| 苏ICP备13036349号-1