硬件部分
串口是MCU的重要外部接口,同时也是软件开发重要的调试手段,其重要性不言而喻。现在基本上所有的MCU都会带有串口,F28335自然也不例外。通常,大部分人把SCI、UART与RS232混为一谈,其实他们有本质上的差别。
SCI(Serial Communication Interface)意为“串行通信接口”,是相对于并行通信的,是串行通信技术的一种总称,最早由Motolora 公司提出的。
UART(Universal Asynchronous Receiver & Transmitter)即通用异步收发器,是串行通信的一种协议,它规定串行通信的波特率、起始/停止位、数据位、校验位等格式,以及各种异步握手信号。
RS232 是串行通信的一种物理接口电气标准,规定传输介质(电缆)、收发电平等。其实,RS232、RS422、RS485等都是SCI,其中两线制(仅RXD和TXD)的RS232与RS422和RS485的通信协议是相同的(只有波特率、起始/停止位、数据位、校验位等参数),仅传输介质和收发电平不同。
图10. 1SCI接口电路
SCITXDB接GPIO18引脚,SCITXDB接GPIO19引脚。本实验采用DB9接口,将“DB9转USB”通信端口与上位机连接,通信引脚无需单独连接。
模型搭建
“代码生成SCI通信实验模型”,如下图:
图10. 2ADC采样实验模型
用MATLAB/Simulink R2018b或者更高版本MATLAB/Simulink新建仿真模型。
“1”是中断模块,双击该模块打开参数对话框,根据图10. 3中断向量表,CPU中断序列选择9,PIE中断序列选择3,优先级选择30;
图10. 3中断向量表
“2”是子系统,框选区域后,选择创建子系统;
图10. 4创建子系统
“3”是SCI通信接收模块,打开参数设置窗口,SCI模块选择B,开始符与终止符均去掉,采样时间-1,勾选等待收到数据,超时设置为0.019444,点击确定完成设置;
图10. 5配置SCI接收模块
“4”是是SCI通信发送模块,打开参数设置窗口,SCI模块选择B,去掉开始符与终止符,点击确定完成设置;
图10. 6配置SCI发送模块
“5”是函数调用模块,查找Trigger模块,选择触发器类型为“函数调用”,完成设置。
图10. 7函数调用模块
下载运行
第一步:DSP板上电
用MATLAB/Simulink R2018b或者更高版本MATLAB打开“Lab10_SCI_Experiment.slx”;
图10. 8 SCI通信实验模型
其中“1”为模型配置按钮,点击该按钮,弹出配置对话框,然后配置目标硬件的资源,在“Build Action”中设置编译选项,在“Target hardware resources”中的SCI_B栏,勾选“Post receive FIFO interrupt when data is received”,引脚分配分别选择GPIO18与GPIO19;
图10. 9 “Hardware Implementation”选项的设置
“2”是“Build,Deploy&Start”,模型编译下载按钮,点击该按钮,模型会自动编译,在matlab路径下生成目标代码,同时将程序下载至DSP核心板并自动运行。
第二步:观察实验结果
实验现象:发送单个字符“a”“b”“c”“d”如下图所示。
图10. 10 串口通信测试
串口调试软件4.5使用注意事项:以管理员身份运行串口调试软件,根据设备管理器中的串口设备号COM—选择端口号,波特率选择115200,取消勾选接收区和发送区1的16进制选项,可在发送区1手动发送数据。
图10. 11 串口调试软件设置
以上就是代码生成SCI通信实验的所有内容啦!大家点点收藏的同时,麻烦点点赞同哦,谢谢! 代码生成模型已在闲鱼(灼青云)上架,有需要的小伙伴可以看看。
此外,附上文中用到的串口调试软件“ComMonitor”。链接:https://pan.baidu.com/s/1XlyxYKaRJeukuVZHqqeUZA?pwd=sbee
提取码:sbee