DSP芯片基于SCl6C750B的RS232接口设计
该芯片的数据手册。
2.2程序设计
首先初始化编程,以确定TMS320C32与SCl6c750B之间的操作方式、数据传输帧格式、SCl6C750B自身的工作模式、数据传输波特率的设置等工作。设定:
①SCl6C7 150B工作在DMA模式0(DMA mode O)。在此模式下,每当发送寄存器THR为空,TXRDY信号会降为逻辑低电平。只要接收寄存器RHR被装载了一个字符,RXRDY会立刻降为逻辑低电平。
②TMS320C32与SCl6C750B UART之间的操作方式采用中断操作方式,中断方式相对于查询方式可以提高TMS3320C32的工作效率。TMS320C32的INT0中断引脚接UART的RXRDY信号,INT1接TXRDY信号。这样,由INT0、INT1对应的中断服务例程完成数据的接收和发送。
③数据传输帧格式:数据字长8位、2位停止位、偶校验。
④设置波特率。
在RS232电平逻辑中,串行数据速率(serial data rate)就等于波特率(baud rate)。如果外部时钟频率(XTAL1clock frequency)为1.8432 MHz、波特率19 200 bps时,对应的波特率除数(divisor)为6。
用C语言开发[8]TMS320C32的串口通信程序。初始化程序如下:
#include<stdlib.h>
#include<ioports.h>
//声明SCl6C750B寄存器的结构
typedef struet{
unsigned RHR,//接收保持寄存器
unsigned THR#//发送保持寄存器
unsigned IER;//中断使能寄存器
unsigned FCR;//FIFO控制寄存器
unsigned ISR; //中断服务状态寄存器
unsigned LCR;//线路控制寄存器
unsigned MCR;//Modem控制寄存器
unsigned LSR; //线路状态寄存器
unsigned MSR;//Modem状态寄存器
unsigned SPR; //便笺寄存器
unsigned DLL; //波特率除数低字节锁存器
unsigned DLM;//波特率除数高字节锁存器
}SerialPort;
//SCl6C750B的寄存器基地址为0x810100h
SerialPort SD={
0x810100h,0x810100h,0x810101h,
0x810102h,0x810102h,0x810103h,
0x810104h.0x810105h, Ox810106h
0x810107h 0x810100h,0x810101h
);
void main(void){
;
//波特率设置
outport(sp.LCR,0x80); //LCR[7]=0
outport(sp.DLL,0x06); //波特率19 200 bps
outport(sp.DLM,0x00);
outport(sp.LCR,0xlF); //数据帧格式
outport(sD.FCR,0xAl)} //DMA mode 0
outport(sp.IER,0x07); //中断使能
;
}
//INTO中断服务例程--数据接收
unsigned char recvdata;
void c_int-1(void){
recvdata=inport(sp.RHR);
;
}
//INT中断服务例程--数据发送
void c_int02(void){
outport(sp.THR,transdata);
;
}
3 结 论
TMS320C32是一种高性价比的32位浮点DSP新片,但其通信功能相对较弱。采用SC16C750B UART芯片扩展TMS320C32的RS232串行口,用于实际温度和压力测控装置中,经验证,数据通信可靠。
TMS320C32 RS232 SC16C750B DSP UART 相关文章:
- 基于PCI总线和DSP芯片的图像处理平台的硬件设计(07-06)
- TMS320C32 DSP的中断编程方法 (07-02)
- TMS320C32的存储器接口设计(10-29)
- 基于DSP的存储器接口设计方案(09-03)
- TMS320C32 DSP的存储器接口设计方案(09-07)
- TMS320C32的中断编程方法介绍(08-15)