六、通用异步串行口(UART).doc_第1页
六、通用异步串行口(UART).doc_第2页
六、通用异步串行口(UART).doc_第3页
六、通用异步串行口(UART).doc_第4页
六、通用异步串行口(UART).doc_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

DSP实验报告 实验名称: 通用异步串行口(UART) 系 部: 物理与机电工程学院 专业班级: 11级电子信息工程1班 学 号: 2011041513 学生姓名: 洪思铖 指导教师: 罗锦彬 完成时间: 2014-5-9 报告成绩: 评阅意见: 评阅教师 日期 通用异步串行口(UART)一、实验目的 1. 掌握异步串行通信协议;2. 掌握2812异步收发器模块的应用。二、实验设备1. 一台装有CCS软件的计算机; 2. DSP试验箱的TMS320F2812主控板;3. DSP硬件仿真器。三、实验原理1.异步串行通信协议在传输数据前,数据线处于高电平状态,这称为表示态。传输开始后,数据线由高电平转为低电平状态,这称为起始位;起始位后面接着58个信息位;信息为后面是校验位;校验位后是停止位“1”。传输完毕后,可以立即开始下一个字符的传输;否则,数据线再次进入标识态。上面提到的信息位的位数(58位)、停止位的位数(1位、1.5位或2位)、校验的方式(奇偶验、偶校验或不校验)等参数都可以根据不同需要进行设置,但对于同一个传输系统中的首发两端来说,这些参数必须保持一致。异步串行通信方式中另一个重要的参数是波特率。在一般的“0”“1”系统中,波特率就是每秒钟传输的位数。国际上规定了一个标准波特率系列,他们是最常用的波特率。标准波特率系列为110、300、600、1200、1800、2400、4800、9600和19200。发送端和接收端必须设置统一的波特率,否则无法正确接收数据。2.电平转换RS-232-C标准中规定-5V-15V位逻辑“1”,+5V+15V位逻辑“0”,因此要用专门的芯片完成TTL电平与RS-232电平的转换,如MAX3232。3.串行口调试助手该计算机端程序可以监测计算机串口接收和发送数据的情况。本实验中需要用该程序帮助观察实验结果。四、实验步骤1. 用串口线连接实验箱的 UART 模块与计算机串行口;2. 在 CCS 环境中打开本实验的工程Example_sci.pjt,编译,生成输出文件,通过仿真器把执行代码下载到DSP 芯片;3. 在计算机上运行串口调试助手程序,设置串口为Com1,波特率为9600,校验为None,停止位为1 位,十六进制显示,以待观察从DSP 往PC 串口发送的数据;4 . 选择“View”-“memory”,起始地址设为“0x1000”,“Page”项设置为“I/O”,以待观察寄存器的值;5. 在串口调试助手程序的发送窗口键入任意字符(如 “5A”)以待发送至DSP,并且选择手动发送模式(即不选中自动发送项)和十六进制发送;6. 运行程序;观察结果。7.程序见附录:五、实验结果调试助手窗口显示如下:六、实验小结本实验为通用异步串行接口(UART)实验,运行程序后能通过在串口调试助手程序中,在接收窗口中可以观察正确接收到0X000XFF的数据。在本实验中使我掌握了异步串行通信协议及其使用方法,掌握了2812异步收发器模块的应用方法,并能通过串口调试助手对主板的数据收发等功能。并使我进一步掌握用C语言编写 DSP 程序的方法,及编译、除错能力。总而言之,实验成功,收获颇丰。附页:实验原程序代码#include include/DSP281x_Device.h#include include/DSP281x_Examples.hvoid scia_loopback_init(void);void scia_fifo_init(void);void scia_xmit(int a);void error(int);interrupt void scia_rx_isr(void);interrupt void scia_tx_isr(void);Uint16 LoopCount;Uint16 ErrorCount; void main(void) Uint16 SendChar; Uint16 ReceivedChar;InitSysCtrl(); EALLOW; GpioMuxRegs.GPFMUX.all=0x0030;/ Select GPIOs to be Sci pins DINT;IER = 0x0000;IFR = 0x0000;InitPieVectTable(); EnableInterrupts(); LoopCount = 0; ErrorCount = 0; scia_fifo_init(); / Initialize the SCI FIFO scia_loopback_init(); / Initalize SCI for digital loop back SendChar = 0;for(;) scia_xmit(SendChar); while(SciaRegs.SCIFFRX.bit.RXFIFST !=1) / wait for XRDY =1 for empty state ReceivedChar = SciaRegs.SCIRXBUF.all; if(ReceivedChar != SendChar) error(1); SendChar+; SendChar &= 0x00FF; LoopCount+; if(LoopCount=256)LoopCount=0;SciaRegs.SCICCR.bit.LOOPBKENA =0; / Disable loop back SciaRegs.SCICTL1.all =0x0023;/ Relinquish SCI from Resetwhile(ReceivedChar = SciaRegs.SCIRXBUF.all)!=0x0d);scia_loopback_init(); / Initalize SCI for digital loop back void error(int ErrorFlag) ErrorCount+;void scia_loopback_init() SciaRegs.SCICCR.all =0x0007; SciaRegs.SCICTL1.all =0x0003; SciaRegs.SCICTL2.all =0x0003; SciaRegs.SCICTL2.bit.TXINTENA =1;SciaRegs.SCICTL2.bit.RXBKINTENA =1; SciaRegs.SCIHBAUD =0x0001; SciaRegs.SCILBAUD =0x00e7;SciaRegs.SCICCR.bit.LOOPBKENA =1; / Enable loop back SciaRegs.SCICTL1.all =0x0023; / Relinquish SCI from Reset / Transmit a character from the SCIvoid scia_xmit(int a)

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论