| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 嵌入式 -> DSP28335的RS232串口通讯试验 -> 正文阅读 |
|
[嵌入式]DSP28335的RS232串口通讯试验 |
目录前言串口通信(Serial Communication)是指外设和计算机间通过数据信号线、地线等按位进行传输数据的一种通信方式,串口通信的接口标准有很多,有 RS-232C、RS-232、RS-422A、RS-485 等。常用的就是 RS-232 和 RS-485。 本文第一部分以RS232C作理论的简要介绍 第二部分和第三部分,用DSP28335实现RS232串行通讯并验证。 文末有完整代码压缩包链接,有需要自取。 一、理论部分基本概念串行通信接口(SCI,Serial Communication Interface)是一个双线异步串行端口,通常称为UART。接收和发送有各自独立的信号线(TXD和RXD),但不是同一个时钟。SCI模块支持CPU和使用标准非归零(NRZ)格式的其他异步外围设备之间的数字通信。SCI接收器和发射器各有一个16级深度FIFO,用于减少服务开销,并且各有各自独立的启用位和中断位。二者可以独立操作用于半双工通信,或同时用于全双工通信。
SCI数据格式SCI数据的接收和发送都是以下格式:
用于区分地址和数据的额外位(仅限地址位模式)An extra bit to distinguish addresses from data (address-bit mode only)。 数据的基本单位称为字符,长度为1至8位。数据的每个字符都包含一个起始位、一个或两个停止位以及可选的奇偶校验位和地址位格式化。带有格式信息的数据字符称为帧,下图为从数据手册截图。 ?
管脚定义RS-232C 是 EIA(美国电子工业协会)1969 年修订RS-232C 标准。RS-232C定义了数据终端设备(DTE)与数据通信设备(DCE)之间的物理接口标准。 RS-232C 常用接口是?9 针的连接器接口,简称DB9。现使用的多数都是 DB9 接口。如下图 RS232C接口定义如下表,我们通常并不会每根管脚都使用到,一般只用到TXD、RXD和SGND三个管脚,也就是2、3和5号管脚。其他管脚为数据流量控制等功能所使用。 逻辑电平规定RS-232C 对逻辑电平也做了规定: 在 TXD 和 RXD 数据线上
由此可见,RS-232C 是用正负电压来表示逻辑状态,与晶体管-晶体管逻辑集成电路(TTL)以高低电平表示逻辑状态的规定正好相反。而我们dsp使用的是 TTL 电平,所以要实现dsp与计算机的串口通信,需要进行TTL与 RS-232C 电平转换,使用的电平转换芯片是 SP3232。3代表3.3V. 另外,笔记本上没有RS232接口,故完成dsp和PC上位机的通讯还需要一根RS232转USB线。 波特率波特率baud:单位时间传输的位数 波特率计算公式: BRR为16位波特值? SCI Asynchronous Baud为SCI异步通讯波特率 请注意,上述公式仅适用于以下情况:1≤ BRR≤ 65535. 二、F28335配置RS232串口通讯DSP28335SCI控制框图tip:参照控制框图查看寄存器的配置会易于理解。 寄存器配置1、发送器TX及相关寄存器 SCITXBUF:发送数据缓冲器,存放要发送的数据(由CPU装载) TXSHF:发送移位寄存器,从SCITXBUF接收要发送的数据,当TXENA使能时(即SCICTL1.1位使能),将数据一位一位地移位到SCITXD引脚上,每次移1位数据。 2、接收器RX及相关寄存器 SCIRXBUF:接收数据缓冲器,接收CPU要读取的数据 RXSHF:接收移位寄存器,从SCIRXD引脚一位一位接收数据 来自远程处理器的数据加载到寄存器RXSHF中,若RXENA闭合(即SCICTL1.0位使能),则一位一位送入寄存器SCIRXBUF和SCIRXEMU,我们读取SCIRXBUF就可以获取数据。 ?对应代码
3、可编程波特率产生器
baud为波特率,将变量scibaud赋给Ti提供的波特值寄存器
4、数据存储映射的控制和状态寄存器 控制寄存器:可以设置数据格式、通信速率 状态寄存器:可以查看发送和接收的状态
具体配置看数据手册即可。 5、两个外部引脚 SCITXD位SCI数据发送引脚;SCIRXD为SCI数据接收引脚。两个引脚为多路复用引脚。直接调用TI提供的初始化函数InitSciaGpio()。 InitSciaGpio()函数介绍如下: 完整配置代码见第三部分 三、验证验证思路上位机和dsp通讯,上位机向dsp发送字符,dsp接收上位机发送的字符并原封不动返回给上位机,上位机打印dsp发送的数据。 试验环境
? 关键程序寄存器配置
主函数
试验结果使用仿真器将开发板和电脑连接,并且使用USB 转232串口线将开发板串口与电脑连接,烧录程序,点击仿真调试,打开串口调试助手。 这里数据格式配置为8个数据位,1个停止位,无奇偶校验位。波特率设置为4800。 在上位机输入“无咎”20220906,可以看到dsp接收到上位机发送过来的数据,并将数据返回给上位机打印出来。 至此,验证成功。 希望对大家有所帮助。 完整的代码及工程文件,有需要自取:https://download.csdn.net/download/Jaspercai/86510488 |
|
嵌入式 最新文章 |
基于高精度单片机开发红外测温仪方案 |
89C51单片机与DAC0832 |
基于51单片机宠物自动投料喂食器控制系统仿 |
《痞子衡嵌入式半月刊》 第 68 期 |
多思计组实验实验七 简单模型机实验 |
CSC7720 |
启明智显分享| ESP32学习笔记参考--PWM(脉冲 |
STM32初探 |
STM32 总结 |
【STM32】CubeMX例程四---定时器中断(附工 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/25 23:01:04- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |