积分规则 网站地图 帮助中心    
嵌入式软件 单 片 机 DSP 存储器 传感控制 光电显示
嵌入式硬件 CPLD/FPGA SOPC AD/DA 接口电路 模拟设计
I C设计 通信产品 汽车电子 电源产品 消费电子 数控系统
工业控制 军工/航天 安防产品 医疗电子 计算机外设 测试测量
供应 I C
求购 公司库

  IC 求购 销售 公司 论文 DATASHEET 参考设计 论坛
当前位置: 电子技术 >> 接口设计 >> 应用论文
  相关分类: 相关文章 | 应用论文 | 新产品 | 下载 |
DSP芯片基于SCl6C750B的RS232接口设计
 
作者:薛志方 史琳   来源:本站原创    点击数:160   更新时间:2008-3-4
您可以添加到网摘 让更多人关注此文章:

    

摘  要:TMS320C32是32位浮点DSP芯片,在数字信号处理和自动化领域得到了广泛应用;而RS232(EIA232)是自动化控制领域中一种基本的串行异步通信规约。在开发基于TMS320C32的热力系统测控装置时,采用SCl6C750BUART芯片扩展出实现RS232规约的通信串口。文章介绍此串口收发中断程序的设计和基于C语言的串口通信中断例程的有关问题。

关键词:TMS320C32  SC16C750B RS232 UART DSP


引 言
    美国TI(Texas Instruments)公司的系列DSP芯片采用哈佛结构、流水线操作、专用硬件乘法器、快速DSP指令,使其在数字信号处理、通信和工业自动化等领域得到广泛应用[1]。TMS320C32是32位浮点处理器。它除了上述特点外,还具有增强型存储器接口、灵活的启动装载(boot loader)、可重定位的中断矢量表、灵活的中断方式和其他外设[2];其通信功能只包括片上集成的一个串口,但在设计中此串口一般被串行A/D或D/A芯片占用,或者被用于与另一片DSP芯片在“握手模式”(handshakemode)下直接连接[3]。

    虽然TMS320C32串口有多种工作方式[3,4],但通过串口相应的寄存器并不能直接配置出符合RS232标准的通信串口。而RS通信串口是自动化控制设备的一种基本通信方式,如PC机或其他各种基于微处理器的控制装置。RS232标准在1991年被标准化组织EIA(ElectronicIndustries Association)重命名为EIA232标准[5],是一种异步串行通信标准,包括机械连接、信号功能、电压特性和通信协议等几个方面的规定。

    采用1片SC16C750B UART芯片[6]来完成TMS320C32的RS232串口的设计。此UART最高的串行数据速率可达3 Mbps,引脚与TLl6C750兼容,并且具有64字节接收和发送FIFOs以及自动硬件流量功能。这些特征使串口通信更加高效、可靠。


1 TMS320C32的RS232串口硬件设计
    在基于微处理器开发的自动控制装置设计中,一般并不需要串行通信的长距离传输,故普遍采用“零-Modem”方式(Null-Modem or Zero-Modem)实现一对异步串口连接。图1为一种“零-Modem”连接方式(具体信号的意义可见RS232标准)。


    由于RS232标准的异步通信规约数据帧都带起始位和停止位,并且SC16C750B UART芯片具有自动硬件流量控制功能,因此可以进一步忽略与Modem相关的控制信号(DTR、DSR、CD、RTS、CTS),简化连接。

1.1 SCl6C750B UART芯片

    SCl6C750B为异步串行通信芯片[6],带标准Modem接口。它具有以下主要特点:

    ①标准异步错误位和帧格式位(起始位、停止位、奇偶校验位),并且帧格式可编程;
    ②软件可选择波特率;
    ③发送和接收各64字节FIFOs;
    ④发送、接收、线路状态等中断可独立控制,并且中断优先级可编程;
    ⑤独立的接收时钟;
    ⑥在5V工作电压下,发送或接收速率可达5Mbps;

    ⑦自动硬件流量控制;
    ⑧4种可选择接收中断级别;
    ⑨标准Modem接口;
    ⑩引脚与STl6C>t50/550、TLl6C450/550、PC16C450/550,软件与SCl6C750及TL16C750兼容。其他一些特点不再赘述。
 
   SCl6C750B主要引脚的功能如表1所列,更具体的资料可见文献[6]。


1.2硬件原理
    硬件设计的总体思路:

    ①UART的地址被分配到TMS320CC32的IOSTRB外部存储器空间,片选信号对应的地址即为UART的基地址。
    ②RXRDYTXRDY分别作为接收、发送中断信号,分别接C32的中断外部引脚INT0INT1,并且C32的中断触发方式设为低电平触发。
    ③UART的Tx、RX引脚均为CMOS电平,而RS232采用的是“负逻辑电平”。本设计采用1片MAX3232[7]完成它们之间的电平转换和驱动,其数据传输速率最高达1 Mbps,。
    ④使接收部分和发送部分的波特率相同,此时RCLK接BAUDOUT引脚。
    ⑤外部参考时钟频率为1.8432 MHz。

1.3 UART扩展RS232串口原理

    依据上面的整体思路设计出硬件电路,如图2所示。


    图2中的端口信号,如数据和地址总线、复位信号、中断信号,完成与TMS320C32之间的连接。本设计中片选信号对应TMS320C32的IOSTRB空间中的0x810100h,即SCl6C750B的内部寄存器的基地址。


2 TMS320C32的RS232串口软件功能设计
    串口工作模式控制和数据收发都是通过TMS320C32对UART内部相关寄存器的读写操作来完成的。因此,首先分析一下SCl6C750B片内寄存器的功能,然后确定在本设计中SCl6C750B的工作模式,并且给出该串口的初始化程序、中断发送程序和中断接收程序。程序以C语言写成。

2.1 SCl6C750B片内寄存器

    表2给出SCl6C7 150B内部寄存器的功能描述。寄存器各位意义可参见该芯片的数据手册。


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串行口,用于实际温度和压力测控装置中,经验证,数据通信可靠。



相关文章
· DSP与PC机的无线交换调制模块设计[461]
· ARM CPU S3C44B0X与C54X DSP的接口设计[144]
· 利用双处理器延长电池使用寿命[213]
· 基于C语言设置TMS320 DSP中断向量表[172]
· 用FPGA构成液晶显示控制器[186]
热门评论排行
·VHDL设计中电路简化问题的
·ARM嵌入式系统基础教程(N
·江苏嵌入式Linux教育培训
·ARM处理器应用开发4步骤
·锐极LINUX驱动培训班定于

文章评论
    没有任何评论
*只显示最新10条评论。评论内容只代表网友观点,与本站立场无关。更多评论
发表评论
  * 请先[登陆]再进行评论,谢谢。
评分: 1分 2分 3分 4分 5分
内容: *
发帖须知:
一.所发文章必须遵守《互联网电子公告服务管理规定》;
二.严禁发布供求代理信息,公司介绍,产品信息等广告宣传信息;
三.严禁恶意重复发帖;
四.严禁对个人,实体,民族,国家等进行漫骂,污蔑,诽谤。
 
热点新闻 [更多]
 
电子制造业如何化危为机
谁能成为“Wii”加速度传感器的新供
AMD抨击英特尔拖延反垄断指控案作法
台湾立院通过DRAM业整并提案&nb
Vishay 推出面向工业
中航芯控:医疗领域RFID应用势在必
安森美半导体为DDR3存储器模块应用
避免危及半导体业 德出手挽
HP实验室展示集CMOS电路与忆阻器
全球第二大代工巨头伟创力瘦身应对金融
 
热门下载 [更多]
 
[ PCB设计] Protel99教程下载
[ ] 手把手学单片机20个例
[ ] 单片机做的智能台灯
[ ] 单片机入门书
[ ] linux系统移植开发文档
[ ] IC卡的读写程序
[ ] 8051单片机C语言彻底应用
[ 常用软件] 555定时器电路设计软件V1.2
[ 常用软件] 51定时器计算软件
[ ] ARM处理器应用开发4步骤
 
论坛新帖 [更多]
 
[原创]工业平板电脑PVT-P...
Palm软件设计前的六问...
李嘉诚传中给年轻人提出了53条...
WindRiver产品介绍...
嵌入式Linux的GDB远程调...
ARM无痛苦起步...
最豪华适用的S3C2440开发...
[推荐]10MF020以太网数...
[推荐]10MF020以太网数...
[推荐]F020以太网核心模块...

 
赞助商 [更多]
 

ICP许可证号:[粤 05056597]
联系电话:010-82517432 82517615 传真: 010-82517615

版权所有 Copyright © 2006 嵌入式技术网