dsp实验报告 哈工大 实验二 异步串口通信实验
更新时间:2023-06-11 08:44:01 阅读量: 实用文档 文档下载
- dsp实验报告推荐度:
- 相关推荐
dsp实验报告 哈工大
实验二 异步串口通信实验
一. 实验目的
1. 了解 TMS320LF2407A DSP 片内串行通信接口(SCI)的特点。
2. 学会设置 SCI 接口进行通信。
3. 了解 ICETEK-LF2407-A 板上对 SCI 接口的驱动部分设计。
4. 学习设计异步通信程序。
二. 实验设备
计算机,ICETEK-LF2407-EDU 实验箱(或 ICETEK 仿真器+ICETEK-LF2407-A 系统板+相关连线及电源)。
三. 实验原理
1. TMS320LF2407A DSP 串行通信接口模块
TMS320LF240x 器件包括串行通信接口 SCI 模块。SCI 模块支持 CPU 与其他使用标准格式的异步外设之间的数字通信。SCI 接收器和发送器是双缓冲的,每一个都有它自己单独的使能和中断标志位。两者都可以独立工作,或者在全双工的方式下同时工作。
2. ICETEK-LF2407-A 板异步串口设计
由于 DSP 内部包含了异步串行通信控制模块,所以在板上只需加上驱动电路部分即可。驱动电路主要完成将 SCI 输出的 0-3.3V 电平转换成异步串口电平的工作。转换电平的工作由 MAX232 芯片完成,但由于它是 5V 器件所以它同 DSP 间的信号线必须有电平转换,此板采用的是 74LS245。
3. 串行通信接口设置
CPU 进行串行通信时可以采用两种方式,一种是轮询方式,即 CPU 不断查询串口状态进行接收和发送,缺点是占用 CPU 时间太多;另一种是中断方式,SCI 的接收和发送都可以产生中断信号,这样 CPU 可以在完成其他一些工作的同时进行串行通信。
串行通信接口波特率计算,内部生成的串行时钟由系统时钟 SYSCLK 频率和波特率选择寄存器决定。串行通信接口使用 16 位波特率选择寄存器,数据传输的速度可以被编程为 65000 多种不同的方式。
不同通信模式下的串行通信接口异步波特率由下列方法决定:
BRR=1—65535 时的串行通信接口异步波特率:
SCI 异步波特率=SYSCLK/ [( BRR+1)*8]
其中,BRR=SYSCLK/(SCI 异步波特率*8)-1;
BRR=0 时的串行通信接口异步波特率:
SCI 异步波特率=SYSCLK/16
这里 BRR 等于波特率选择寄存器的 16 位值。
dsp实验报告 哈工大
四. 实验程序
/* 2407A 板:将 JP11 和 JP14 短接到 2-3;
使用直连的串口通信电缆;
启动串口调试助手.exe;
PC 机发送一个"."为结束标志*/
程序见附页。
五. 实验步骤
1. 实验准备
⑴.连接设备
关闭计算机和实验箱电源;
检查 ICETEK-LF2407-A 板上 JP6 的位置,应连接在 1-2 位置(靠近DSP 芯片端),即设置 DSP 工作在 MP 方式;
关闭实验箱上三个开关;如使用PP型仿真器则用附带的并口连线连接计算机并口和仿真器相应接口;
用附带的串行通信电缆连接计算机COM端口和ICETEK-LF2407-A板上P6 九针接头。
⑵.开启设备
打开计算机电源;
打开实验箱电源开关,打开 ICETEK-LF2407-A 板上电源开关,注意板上指示灯 DS1 灭、DS2 和 DS3 亮;
如使用 USB 型仿真器用附带的 USB 电缆连接计算机和仿真器相应接口,注意仿真器上两个指示灯均亮。
⑶.设置 Code Composer Studio 为 Emulator 方式。
⑷.启动 Code Composer Studio
2. 打开工程,浏览程序,工程目录为 D:\2407EDULab\Lab20-SCI
3. 编译并下载程序
4. 运行“串口调试助手”
利用桌面上“我的电脑”,找到 D:\2407EDULab\Lab20-SCI 目录中的程序“串口调试助手 V2.0B.exe”,双击它启动;设置“串口调试助手”的串行端口为实际连接的计算机 COM 端口,设置波特率为 9600,设置传输方式为 8 位、无校验、1 个停止位。
5. 运行程序观察结果
运行程序后,切换窗口到“串口调试助手”;在“串口调试助手”的接收窗口中可看到 DSP通过 SCI 发送来的“Hello PC!,Over|”字样;在“发送的字符/数据”栏中输入一些要发送到 DSP 的字符串,以“.”字符结尾;然后单击“手动发送”按钮;DSP 在接收到 PC 机的信息后会自动进行回答。
dsp实验报告 哈工大
6. 结束程序运行退出。
六. 实验结果
通过 DSP 传送到 PC 机上的信息,可以看出:SCI 正确工作。 当第一打开时候,串口收到“hello pc!over”,通过串口手动发送一段字母之后,会被返送回来。
七. 问题与思考
请考虑用中断方式设计程序完成异步串行通信。
修改的程序见附页。
dsp实验报告 哈工大
未修改的程序(查询方式):
#include "2407c.h"
void wait(int nWait);
char cString[17]={"Hello PC!, Over|" }, cReceive, cBuffer[17], cAnswer[16] = {"Oh, you say"}; int bReceive,nLen;
main()
{
unsigned int uWork;
int i,k;
bReceive=0;
asm(" setc INTM");
asm(" clrc SXM");
asm(" clrc OVM");
*WDCR=0x6f;
*WDKEY=0x5555;
*WDKEY=0xaaaa; /*关闭看门狗中断*/
*SCSR1=0x81fe; /* 打开所有外设,设置时钟频率为 40MHz */
uWork=(*MCRA);
uWork|=0x03; /* use SCITXD,SCIRXD */
(*MCRA)=uWork;
(*SCICCR)=0x07; /* 8 位字符,1 停止位,无校验*/
(*SCICTL1)=0x03; /* 使能发送和接收 */
(*SCICTL2)=0x00; /* 禁止接收和发送中断 */
(*SCIHBAUD)=0x02; /* 波特率=208H,40MHz */
(*SCILBAUD)=0x08; /* 208h=40*10^6/(9600*8)-1 */
(*SCICTL1)=0x23; /* 使能发送和接收,复位 SCI */
while ( 1 )
{
if ( bReceive==0 )
{
for ( i=0;i<16;i++ )
{
do
{
uWork=(*SCICTL2);
} while ( uWork&0x0c0 != 0x0c0 );
(*SCITXBUF)=cString[i];
wait(1024);
}
}
else
{
for ( i=0;i<10;i++ )
dsp实验报告 哈工大
{
do
{
uWork=(*SCICTL2);
} while ( uWork&0x0c0 != 0x0c0 );
(*SCITXBUF)=cAnswer[i];
wait(1024);
}
do
{
uWork=(*SCICTL2);
} while ( uWork&0x0c0 != 0x0c0 );
(*SCITXBUF)='\"';
for ( i=0;i<nLen;i++ )
{
do
{
uWork=(*SCICTL2);
} while ( uWork&0x0c0 != 0x0c0 );
(*SCITXBUF)=cBuffer[i];
wait(1024);
}
do
{
uWork=(*SCICTL2);
} while ( uWork&0x0c0 != 0x0c0 );
(*SCITXBUF)='\"';
wait(1024);
for ( i=9;i<16;i++ )
{
do
{
uWork=(*SCICTL2);
} while ( uWork&0x0c0 != 0x0c0 )
(*SCITXBUF)=cString[i];
wait(1024);
}
}
k=0; bReceive=0;
while ( 1 )
{
do
{
dsp实验报告 哈工大
uWork=(*SCIRXST);
} while ( (uWork&0x40)==0 );
cReceive=(*SCIRXBUF);
cBuffer[k]=cReceive;
if ( cReceive=='.' )
{
cBuffer[k+1]='\0';
nLen=k+1;
bReceive=1;
break;
}
k++; k%=16;
}
}
}
void wait(int nWait)
{
int i,j,k=0;
for ( i=0;i<nWait;i++ )
for ( j=0;j<64;j++ )
k++;
}
修改之后的程序(中断方式):
#include "2407c.h"
void interrupt gpSCI(void); /* 中断服务程序 */
void wait(int nWait);
char cString[17]={ "Hello PC!,Over|" };
char cReceive,cBuffer[17],cAnswer[16]={"Oh,you say"};
int nLen;
int k=0;
int NotRec=0;
unsigned int flag=0;
main()
{
unsigned int uWork;
int i;
asm(" setc INTM"); /* 关中断,进行关键设置时不允许发生中断,以免干扰 */
asm(" clrc SXM");
asm(" clrc OVM");
*WDCR=0x6f;
*WDKEY=0x5555;
dsp实验报告 哈工大
*WDKEY=0xaaaa; /*关闭看门狗中断*/
*SCSR1=0x81fe; /* 打开所有外设,设置时钟频率为40MHz */ uWork=(*MCRA);
uWork|=0x03; /* use SCITXD,SCIRXD */
(*MCRA)=uWork;
(*SCICCR)=0x07; /* 8位字符,1停止位,无校验*/ (*SCICTL1)=0x03; /* 使能发送和接收 */
(*SCIHBAUD)=0x02; /* 波特率=208H,40MHz */
(*SCILBAUD)=0x08; /* 208h=40*10^6/(9600*8)-1 */ (*SCICTL1)=0x23; /* 使能发送和接收,复位SCI */
(*SCICTL2)=0x02; /* 使能接收和发送中断 */
asm(" clrc INTM"); /* 开中断 */
for ( i=0;i<16;i++ )
{
do
{
uWork=(*SCICTL2);
} while ( uWork&0x0c0 != 0x0c0 );
(*SCITXBUF)=cString[i];
wait(1024);
}
while ( 1 )
{
unsigned int uWork;
uWork=(*PIVR); /* 读外设中断向量寄存器*/
switch(uWork)
{
case 0x06: /* SCI发 */
if(flag)
{
flag = 0 ;
for ( i=0;i<11;i++ )
{
do
{
uWork=(*SCICTL2);
} while ( uWork&0x0c0 != 0x0c0 );
(*SCITXBUF)=cAnswer[i];
wait(1024);
}
do
{
dsp实验报告 哈工大
uWork=(*SCICTL2);
} while ( uWork&0x0c0 != 0x0c0 ); (*SCITXBUF)='\"';
for ( i=0;i<nLen;i++ )
{
do
{
uWork=(*SCICTL2);
} while ( uWork&0x0c0 != 0x0c0 ); (*SCITXBUF)=cBuffer[i];
wait(1024);
}
do
{
uWork=(*SCICTL2);
} while ( uWork&0x0c0 != 0x0c0 ); (*SCITXBUF)='\"';
wait(1024);
for ( i=9;i<16;i++ )
{
do
{
uWork=(*SCICTL2);
} while ( uWork&0x0c0 != 0x0c0 ); (*SCITXBUF)=cString[i];
wait(1024);
}
NotRec=0;
k=0;
}
}
}
}
void interrupt gpSCI(void) /* 中断服务程序 */ {
unsigned int uWork,Rec;
uWork=(*PIVR); /* 读外设中断向量寄存器*/ switch(uWork)
{
case 0x06: /* SCI收 */
dsp实验报告 哈工大
if(!NotRec)
{
cReceive=(*SCIRXBUF); cBuffer[k]=cReceive;
if ( cReceive=='.' ) {
flag = 1 ; NotRec = 1 ; cBuffer[k]='\0'; nLen=k;
Rec=(*SCIRXBUF); break;
}
Rec=(*SCIRXBUF); k++;k%=16;
break;
}
Rec=(*SCIRXBUF); break;
}
}
void wait(int nWait)
{
int i,j,k=0;
for ( i=0;i<nWait;i++ )
for ( j=0;j<64;j++ ) k++;
}
正在阅读:
新疆地方史0207-11
兰大《文学概论》15秋在线作业3满分答案10-05
迷宫密封特性研究10-09
2016年税务系统行政管理岗位业务能力测试20套题第1套(初级)04-25
董事长工作会议发言稿 牛盾副部长在全国渔业工作会议上的讲话 精03-22
- 教学能力大赛决赛获奖-教学实施报告-(完整图文版)
- 互联网+数据中心行业分析报告
- 2017上海杨浦区高三一模数学试题及答案
- 招商部差旅接待管理制度(4-25)
- 学生游玩安全注意事项
- 学生信息管理系统(文档模板供参考)
- 叉车门架有限元分析及系统设计
- 2014帮助残疾人志愿者服务情况记录
- 叶绿体中色素的提取和分离实验
- 中国食物成分表2020年最新权威完整改进版
- 推动国土资源领域生态文明建设
- 给水管道冲洗和消毒记录
- 计算机软件专业自我评价
- 高中数学必修1-5知识点归纳
- 2018-2022年中国第五代移动通信技术(5G)产业深度分析及发展前景研究报告发展趋势(目录)
- 生产车间巡查制度
- 2018版中国光热发电行业深度研究报告目录
- (通用)2019年中考数学总复习 第一章 第四节 数的开方与二次根式课件
- 2017_2018学年高中语文第二单元第4课说数课件粤教版
- 上市新药Lumateperone(卢美哌隆)合成检索总结报告
- 实验
- 哈工大
- 异步
- 串口
- 通信
- 报告
- dsp
- 轨道交通系统杂散电流及其腐蚀控制技术初探(一)
- 中石油构建HSE安全管理体系的启示
- 修饰表格教学案例
- 日本开发木材干燥/REO防腐处理装置
- 查经资料-以诺二书
- (完整word版)英语名词单复数练习题带答案
- 华北电网自动发电控制综述_刘永奇
- 2011年全国各地中考生物试题考点分类汇编考点30 血液循环和输血
- A_O_化学除磷工艺中DMBR动态膜成膜条件研究
- 注册会计师讲义《财管》第九章资本预算03
- 大一线性代数练习题五套(带答案)
- 高三毕业班地理教学工作总结范文
- 国际大专辩论赛.大学教育更应该注重培养科学精神还是人文精神
- 化工系认识实习报告
- 滴滴打车对大学生生活的影响
- 银行消防应急预案演习方案
- 外国对以色列侵略黎巴嫩战争的评价
- 数学建模之随机性模型与模拟方法
- 江苏省徐州市2011年中考政治模拟试题(一) 人教新课标版
- AT24C02串行E2PROM的工作原理与读写