DSP芯片基于SC16C750B的RS232接口设计
对于查询方式可以提高tms3320c32的工作效率。tms320c32的int0中断引脚接uart的rxrdy信号,int1接txrdy信号。这样,由int0、int1对应的中断服务例程完成数据的接收和发送。
(3)数据传输帧格式:数据字长8位、2位停止位、偶校验。
(4)设置波特率。
在rs232电平逻辑中,串行数据速率(serial data rate)就在等于波特率(baud rate)。如果外部时钟频率(xtal1 clock frequency)为1.8432mhz、波特率19 200bps时,对应的波特率除数(divisor)为6。
用c语言开发[8]tms320c32的串口通信程序。初始化程序如下:
#include<stdlib.h>
#include<ioports.h>
//声明sc16c750b寄存器的结构
typedef struct{
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;
//sc16c750b的寄存器基地址为0x810100h
serialport sp={
0x810100h,0x810100h,0x810101h,
0x810102h,0x810102h,0x810103h,
0x810104h,0x810105h,0x810106h,
0x810107h,0x810100h,0x810101h,
};
void main(void){ …
//波特率设置
outport(sp.lcr,0x80); //lcr[7]=0
outport(sp.dll,0x06); //波特率19 200bps
outport(sp.dlm,0x00);
outport(sp.lcr,0x1f); //数据帧格式
outport(sp.fcr,0xa1); //dma mode 0 outport(sp.ier,0x07); //中断使能
…
}
//int0中断服务例程——数据接收
unsigned char recvdata;
void c_int01(void){
recvdata=inport(sp,rhr);
…
}
//int1中断服务例程——数据发送
void c_int02(void){
outport(sp.thr,transdata);
…
}
3 结论
tms320c32是一种高性价比的32位浮点dsp芯片,但其通信功能相对较弱。采用sc16c750b uart芯片扩展tms320c32的rs232串行口,用于实际温度和压力测控装置中,经验证,数据通信可靠。
RS232接口 相关文章:
- 一分钟看懂RS232接口与RS485的不同之处(09-20)
- LT3751如何使高压电容器充电变得简单(08-12)
- 三路输出LED驱动器可驱动共阳极LED串(08-17)
- 浪涌抑制器IC简化了危险环境中电子设备的本质安全势垒设计(08-19)
- 严酷的汽车环境要求高性能电源转换(08-17)
- 适用于工业能源采集的技术 (08-10)