没有合适的资源?快使用搜索试试~ 我知道了~
基于VB的DSP-与PC机的串行通信.doc
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 60 浏览量
2022-06-20
09:26:41
上传
评论
收藏 358KB DOC 举报
温馨提示
试读
34页
基于VB的DSP-与PC机的串行通信.doc
资源推荐
资源详情
资源评论
基于 VB 的 DSP 与 PC 机的串行通信
摘 要:要实现对现代变压器特性试验仪的数据处理和分析必须解决 机和
的串行通信问题。文中介绍了基于
的 与 机的串行通信构建了两者的串行通信体系结
构并通过具体的实例给出了 与 机之间
串行通信的方法。结果表明该方法简单有效、功能强大方便地实现了 机
和 之间的通信借鉴性高。
关键词:串行通信;
计算机技术在工业控制领域的运用越来越广泛,往往需要由一台主机去控制
多台从机,当上位机距离下位机较远时,就需要使用串行数据通信。串行通信
由于具有通信线路简单,数据传输可靠等优点,在工业控制。数据采集和实时
控制等场合得到了广泛的运用。其中主要进行对数据的实时采集、处理、
控制再通过串口将数据送入 机的缓冲区然后由 机对数据进行进一步
处理以便得到所需的图形、图像及实验结果。采用 语言中的通信控件
能够很好地完成二者之间的通信功能。
1.系统简介
近年来,随着集成电路技术和制造工艺的突飞猛进,推动了数字信号处理方
法和运用的研究。告诉数字信号处理方法和运用的研究。告诉数字信号处理技
术的发展及其制造成本的降低,使数字信号处理技术在电力系统的各个研究领
域 得 到 了 广 泛 的 运 用 , 技 术 被 运 用 于 某 些 电 力 产 品 的 开 发 研 究 中 。
是美国德州仪器公司最新推出的数字信号处理器之一,
其运算精度达到了 位,处理能力达到 ,从而大大改善了运用的灵
活性,尤其是为电机及其他运动控制领域的运用提供了良好的平台。
是 公司推出的用于各个系列 芯片的集成开发坏境,它采用了
!" 风格的界面,集编辑,翻译,链接,软件仿真,硬件调试以及实时
跟踪等功能于一体,极大的方便了程序的设计和开发。在使用 前首先要在
机上进行安装,在安装完毕后,就可以通过 #$% 设置硬件和软件,
在进入 环境进行编辑或修改。
2.通信原理和方法
上位机首先向 发出接收数据的指令接收到来自上位机的指令后
进行判断看其是否正确。如果正确则向上位机传送数据&包含首尾校验字节'
否则拒绝向上位机传送数据。上位机接收到 传来的数据后同样要
判断正确与否如果正确则接收否则拒绝接收。接收到此指令后进行
判断如果正确则向上位机发送相应的组数据 次如果不正确则处于
等待状态不发送数据。上位机收到来自 的数据后首先进行数据校验如
果校验成功&即接收到的两组数据相同'则说明接收到的数据是正确的从而
可以进行处理否则拒绝接收并显示相关警告信息。
3.VC 编写串口程序的方法和流程
建 立 项 目 : 打 开 + + , 建 立 一 个 基 于 对 话 框 的 应 用 程 序
#$
在项目中插入 控件 选择 ()#$ 菜单下 *!!++()#$ 子菜单
中 的 % # $+ !+ $(, 选 项 , 在 弹 出 的 对 话 框 中 双 击
-#.$#(#!+*$/#0+ $( 项,则所有注册过的 *$/#0 控件出现在列表
框 中 。 选 择 (1$+ $ + $(+/#( + , , 单 击
#($ 按钮将它插入到 ()#$ 中来,接受缺省的选项。这时在 #" 视
窗中就可以看到 类了,并且在控件工具栏 $( 中出现了电话
图标,用鼠标将此图标拖到对话框中,程序运行后,这个图标是看不到的。
利 用 2(! 定 义 类 控 制 对 象 打 开 2(! -
3#4#(+(4# 选 项 卡 , 选 择 #$. 类 , 为
56 添加控制变量:5$(,这时在对话框头文件中自动
加入了77*0589:;&'++< !#+=>=++??*0589:;
+。
@在对话框中添加控件 向主对话框中添加两个编辑框,一个用于接收显示数据
为 5;5-0** , 另 一 个 用 于 输 入 发 送 数 据 , 为
5;50**,再添加一个按钮,功能是按一次就把发送编辑框中的内
容发送一次,将其 设为 5:685*8:*9;8。将接收编辑框的
(%#($# - 3$A# 中 把 $ # 和 #($+( 属 性 选 上 。
再 打 开 2(! - 3#4#(+(4# 选 项 卡 , 选 择
#$. 类 , 为 5;5-0** 添 加 $( . 变 量
5$(-0$, 为 5;50** 添加 $( . 变量 5$(0$。
说明: 5$(-0$ 和 5$(0$ 分别用来放入接收和发送的字符数据。
添加串口事件消息处理函数 6 &'+打开 2(!-3#.#+
% , 选 择 类 #$. , 选 择 56 , 双 击 消 息
6 ,将弹出的对话框中将函数名改为 6 ,(好记而已)6B。
+这个函数是用来处理串口消息事件的,如每当串口接收到数据,就会产生一个
串口接收数据缓冲区中有字符的消息事件,我们刚才添加的函数就会执行,我
们在 6 &'函数加入相应的处理代码就能实现自已想要的功能了。请你
在函数中加入如下代码:
/!+#$.CC6 &'+
7
+++++66C+*!!+A(+ $(+ $D$ +> !#(+!#+>#(#
++++*-*8+/( $5 %
++++6#1#*((A+1#((A5 %
++++968E+# F
++++G;+(H!$I@J+设置 G; 数组 * +K4$+ $#.#($>$++ $+.
#!
++++$( .+$($#%
++++1&5$(E#$;/# $&'LL'+事件值为 表示接收缓冲区内
有 字 符
++++7+++++++++++++ 以 下 你 可 以 根 据 自 己 的 通 信 协 议 加 入 处 理 代 码
++++++++/( $5 %L5$(E#$ %$&'+ 读 缓 冲 区
++++++++1#((A5 %L/( $5 %+*-*8 型 变 量 转 换 为
#1#*((A 型 变 量
++++++++# L1#((A5 %E#$6 #2#&'+ 得 到 有 效 数 据 长 度
++++++++1(&FLFM# FNN'
++++++++++++1#((A5 %E#$;## $&OF(H!$NF' 转换 为 G; 型数 组
++++++++1(&FLFM# FNN'+ 将 数 组 转 换 为 $( . 型 变 量
++++++++7
++++++++++++G;+4$LP&>(P'&(H!$NF'+ 字 符 型
++++++++++++$($#%($&=Q=4$'+ 将 字 符 送 入 临 时 变 量 $($#% 存 放
++++++++++++5$(-0$NL$($#%+ 加 入 接 收 编 辑 框 对 应 字 符 串
++++++++?
++++?
++++:%!$#$&*9;'+ 更 新 编 辑 框 内 容
?
到目前为止还不能在接收编辑框中看到数据,因为我们还没有打开串口,但运
行程序不应该有任何错误,不然,你肯定哪儿没看仔细,因为我是打开 对
照 着 做 一 步 写 一 行 的 , 运 行 试 试 。 没 错 吧 ? 那 么 做 下 一 步 :
打开串口和设置串口参数 你可以在你需要的时候打开串口,例如在程序中做
一个开始按钮,在该按钮的处理函数中打开串口。现在我们在主对话框的
#$.CC6 $.&' 打 开 串 口 , 加 入 如 下 代 码 :
+66C+*!!+#H$(+ $2$ +>#(#
1&5$(E#$($6%# &''
5$(#$($6%# &*9;'
5$(#$($&'+ 选 择
1&+R5$(E#$($6%# &''
5$(#$($6%# &-:;' 打 开 串 口
##
*1H#.#H&= $+%# +#(+%($='
5$(#$#$$ .&=S ='+波特率 S,无校验, 个数
据 位 , 个 停 止 位
5$(#$ %$!#&'+ : 表 示 以 二 进 制 方 式 检 取 数 据
5$(#$->(#>!&'+
参数 表示每当串口接收缓冲区中有多于或等于 个字符时将引发一个接收
数 据 的 6 事 件
5$(#$ %$9# &'+ 设 置 当 前 接 收 区 数 据 长 度 为
5$(E#$ %$&' 先 预 读 缓 冲 区 以 清 除 残 留 数 据
现在你可以试试程序了,将串口线接好后(不会接?去看看我写的串口接线基
本方法),打开串口调试助手,并将串口设在 ,选上自动发送,也可以
等 会 手 动 发 送 。 再 执 行 你 编 写 的 程 序 , 接 收 框 里 应 该 有 数 据 显 示 了 。
T发送数据 先为发送按钮添加一个单击消息即 859B; 处理函数,打开
2(! - 3#.#+% , 选 择 类 #$. , 选 择
5:685*8:*9;8 , 双 击 859B; 添 加
6 $$ # !&' 函 数 , 并 在 函 数 中 添 加 如 下 代 码 :
/!+#$.CC6 $$ # !&'+
7
+66C+*!!+A(+ $(+ $D$ +> !#(+!#+>#(#
:%!$#$&-:;'+ 读 取 编 辑 框 内 容
5$(#$6$%$&6#( $&5$(0$'' 发 送 数 据
?
运行程序,在发送编辑框中随意输入点什么,单击发送按钮,啊!看看,在另
一 端 的 串 口 调 试 助 手 ( 或 别 的 调 试 工 具 ) 接 收 框 里 出 现 了 什 么 。
最后说明一下,由于用到 控件,在没有安装 的计算机上运行时要从
中 把 H 、 /($! 、 1@! 拷 到 !" 目 录 下的
A$# 子目录中(" 为 A$#)
4.DSC 控制 UART 芯片的机制
异步串口通信协议,工作原理是将传输数据的每个字符以串行方式一位接一位
的传输:*-
工作原理其中每一位(4$)的意义如下:起始位:先发出一个逻辑“U的信号,
表示传 输 字符的开始 。数据位:紧 跟起始位之后 。数据位的个数 可以是
@、、、T、 等,构成一个字符。通常采用 * 码。从最低位开始传送,
靠时钟来定位。奇偶校验位:数据位加上这一位后(跟在数据位尾部),使得
“U的位数应为偶数&偶校验'或奇数&奇校验',以此来校验数据传送的正确性。
停止位:它是一个字符数据的结束标志。可以是 位、 位、 位的高电平
(逻辑“U)。KK空闲位:处于逻辑“U状态,表示当前线路上没有数据的传送。
波特率:是衡量数据传输速率的指针。表示为每秒钟传送的二进制位数( 4$
数)。例如资料传送速率为 字符秒,而每一个字符为 位,则其传送的
波特率为 V= 字符秒=
波特。
5.PC 机于 DSP 串口的通信设计
5.1 PC 机的通信流程设计
在编程时,首先要接受 发送来的信息,证明 与 机通信成功。然
后再在 机上输入数据通过 -K 传送给 , 接收后再通过 -K
把数据回送给 机、
机通信的软件实现
以下是手动发送和接收的部分程序:
(/$#4(59!&'
%($L
#$$ .LUS U
($6%# L(#
; !4
(/$#4 !5F&'
$%$L#H$#H$
; !4
(/$#4 !5F&'
$*$( .
$L %$
#H$#H$L$
; !4
设计自动发送和接收时,需要再加入一个时钟控件,暂时设定时间隔为
,这样每个 就会自动发送和接收到一组数据。
5.3 DSP 的通信流程设计
在设计时,首先由 向 机发送一串字符,证明 与 机通信成
功。如果 机有数据向 发送,那么 就将 机发送来的数据会送给
机。
通信流程图如图所示
剩余33页未读,继续阅读
资源评论
智慧安全方案
- 粉丝: 3687
- 资源: 59万+
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功