基于VB的DSP-与PC机的串行通信精品资料.doc
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《基于VB的DSP-与PC机的串行通信精品资料.doc》由会员分享,可在线阅读,更多相关《基于VB的DSP-与PC机的串行通信精品资料.doc(34页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、基于VB的DSP 与PC机的串行通信摘 要: 要实现对现代变压器特性试验仪的数据处理和分析, 必须解决PC 机和DSP 的串行通信问题。文中介绍了基于Visual Basic6. 0 的DSP 与PC 机的串行通信, 构建了两者的串行通信体系结构, 并通过具体的实例给出了DSP 与PC 机之间串行通信的方法。结果表明, 该方法简单有效、功能强大, 方便地实现了PC 机和DSP 之间的通信, 借鉴性高。关键词: 串行通信; DSP ;DSC 计算机技术在工业控制领域的运用越来越广泛,往往需要由一台主机去控制多台从机,当上位机距离下位机较远时,就需要使用串行数据通信。串行通信由于具有通信线路简单,
2、数据传输可靠等优点,在工业控制。数据采集和实时控制等场合得到了广泛的运用。其中, DSP 主要进行对数据的实时采集、处理、控制, 再通过串口将数据送入PC 机的缓冲区, 然后由PC 机对数据进行进一步处理, 以便得到所需的图形、图像及实验结果。采用VB 语言中的通信控件MSComm 能够很好地完成二者之间的通信功能。 1. 系统简介 近年来,随着集成电路技术和制造工艺的突飞猛进,推动了数字信号处理方法和运用的研究。告诉数字信号处理方法和运用的研究。告诉数字信号处理技术的发展及其制造成本的降低,使数字信号处理技术在电力系统的各个研究领域得到了广泛的运用,DSP技术被运用于某些电力产品的开发研究中
3、。TMS320F2812 DSP是美国德州仪器公司最新推出的数字信号处理器之一,其运算精度达到了32位,处理能力达到150MI/S,从而大大改善了运用的灵活性,尤其是为电机及其他运动控制领域的运用提供了良好的平台。 CCS是TI公司推出的用于各个系列DSP芯片的集成开发坏境,它采用了Windows风格的界面,集编辑,翻译,链接,软件仿真,硬件调试以及实时跟踪等功能于一体,极大的方便了程序的设计和开发。在使用CCS前首先要在PC机上进行安装,在安装完毕后,就可以通过Setup CCS设置硬件和软件,在进入CCS环境进行编辑或修改。2.通信原理和方法 上位机首先向DSP 发出接收数据的指令, DS
4、P 接收到来自上位机的指令后, 进行判断, 看其是否正确。如果正确, 则向上位机传送数据( 包含首尾校验字节) ; 否则, DSP 拒绝向上位机传送数据。上位机接收到DSP 传来的数据后同样要判断正确与否, 如果正确, 则接收, 否则拒绝接收。DSP 接收到此指令后, 进行判断, 如果正确, 则向上位机发送相应的组数据2 次;如果不正确, DSP 则处于等待状态, 不发送数据。上位机收到来自DSP 的数据后, 首先进行数据校验, 如果校验成功( 即接收到的两组数据相同) , 则说明接收到的数据是正确的, 从而可以进行处理, 否则拒绝接收, 并显示相关警告信息。3. VC编写串口程序的方法和流程
5、1. 建立项目:打开VC6.0,建立一个基于对话框的MFC应用程序SCommTest2. 在项目中插入MSComm控件选择Project菜单下AddToProject子菜单中的ComponentsandControls选项,在弹出的对话框中双击RegisteredActiveXControls项,则所有注册过的ActiveX控件出现在列表框中。选择MicrosoftCommunicationsControl,version6.0,单击Insert按钮将它插入到Project中来,接受缺省的选项。这时在ClassView视窗中就可以看到CMSComm类了,并且在控件工具栏Controls中出现了
6、电话图标,用鼠标将此图标拖到对话框中,程序运行后,这个图标是看不到的。3.利用ClassWizard定义CMSComm类控制对象打开ClassWizardMemberViariables选项卡,选择CSCommTestDlg类,为IDC_MSCOMM1添加控制变量:m_ctrlComm,这时在对话框头文件中自动加入了/AFX_INCLUDES()#includemscomm.h/AFX_INCLUDES。4.在对话框中添加控件向主对话框中添加两个编辑框,一个用于接收显示数据ID为IDC_EDIT_RXDATA,另一个用于输入发送数据,ID为IDC_EDIT_TXDATA,再添加一个按钮,功能是
7、按一次就把发送编辑框中的内容发送一次,将其ID设为IDC_BUTTON_MANUALSEND。将接收编辑框的PropertiesStyles中把Miltiline和VerticalScroll属性选上。再打开ClassWizardMemberViariables选项卡,选择CSCommTestDlg类,为IDC_EDIT_RXDATA添加CString变量m_strRXData,为IDC_EDIT_TXDATA添加CString变量m_strTXData。说明:m_strRXData和m_strTXData分别用来放入接收和发送的字符数据。5.添加串口事件消息处理函数OnComm()打开Cla
8、ssWizardMessageMaps,选择类CSCommTestDlg,选择IDC_MSCOMM1,双击消息OnComm,将弹出的对话框中将函数名改为OnComm,(好记而已)OK。这个函数是用来处理串口消息事件的,如每当串口接收到数据,就会产生一个串口接收数据缓冲区中有字符的消息事件,我们刚才添加的函数就会执行,我们在OnComm()函数加入相应的处理代码就能实现自已想要的功能了。请你在函数中加入如下代码:voidCSCommTestDlg:OnComm()/TODO:AddyourcontrolnotificationhandlercodehereVARIANTvariant_inp;C
9、OleSafeArraysafearray_inp;LONGlen,k;BYTErxdata2048;/设置BYTE数组An8-bitintegerthatisnotsigned.CStringstrtemp;if(m_ctrlComm.GetCommEvent()=2)/事件值为2表示接收缓冲区内有字符/以下你可以根据自己的通信协议加入处理代码variant_inp=m_ctrlComm.GetInput();/读缓冲区safearray_inp=variant_inp;/VARIANT型变量转换为ColeSafeArray型变量len=safearray_inp.GetOneDimSize
10、();/得到有效数据长度for(k=0;klen;k+)safearray_inp.GetElement(&k,rxdata+k);/转换为BYTE型数组for(k=0;kMessageMaps,选择类CSCommTestDlg,选择IDC_BUTTON_MANUALSEND,双击BN_CLICKED添加OnButtonManualsend()函数,并在函数中添加如下代码:voidCSCommTestDlg:OnButtonManualsend()/TODO:AddyourcontrolnotificationhandlercodehereUpdateData(TRUE);/读取编辑框内容m_
11、ctrlComm.SetOutput(COleVariant(m_strTXData);/发送数据运行程序,在发送编辑框中随意输入点什么,单击发送按钮,啊!看看,在另一端的串口调试助手(或别的调试工具)接收框里出现了什么。最后说明一下,由于用到VC控件,在没有安装VC的计算机上运行时要从VC中把mscomm32.ocx、msvcrt.dll、mfc42.dll拷到Windows目录下的System子目录中(win2000为System32)4. DSC控制UART芯片的机制异步串口通信协议,工作原理是将传输数据的每个字符以串行方式一位接一位的传输.UART工作原理其中每一位(bit)的意义如下
12、:起始位:先发出一个逻辑“0”的信号,表示传输字符的开始。数据位:紧跟起始位之后。数据位的个数可以是4、5、6、7、8等,构成一个字符。通常采用ASCII码。从最低位开始传送,靠时钟来定位。奇偶校验位:数据位加上这一位后(跟在数据位尾部),使得“1”的位数应为偶数(偶校验)或奇数(奇校验),以此来校验数据传送的正确性。停止位:它是一个字符数据的结束标志。可以是1位、1.5位、2位的高电平(逻辑“1”)。-2-空闲位:处于逻辑“1”状态,表示当前线路上没有数据的传送。波特率:是衡量数据传输速率的指针。表示为每秒钟传送的二进制位数(bit数)。例如资料传送速率为120字符/秒,而每一个字符为10位
13、,则其传送的波特率为101201200字符/秒1200波特。5.PC机于DSP串口的通信设计5.1 PC机的通信流程设计 在编程时,首先要接受DSP发送来的信息,证明DSP与PC机通信成功。然后再在PC机上输入数据通过RS-232传送给DSP,DSP接收后再通过RS-232把数据回送给PC机、3.2PC机通信的软件实现 以下是手动发送和接收的部分程序:Private Sub Form_Load()MSComm1.Commport =1MSComm1.Settings=”9600,n,8,1”MSComm1.PortOpen = TureEnd SubPrivate Sub commandl_C
14、lick()MSComml.output = Text.TextEnd SubPrivate Sub command2_Click()Dim at As Stringst = MSComm1,InputText2.Text = stEnd Sub 设计自动发送和接收时,需要再加入一个时钟控件,暂时设定时间隔为3000ms,这样每个3s就会自动发送和接收到一组数据。5.3 DSP的通信流程设计在设计时,首先由DSP向PC机发送一串字符,证明DSP与PC机通信成功。如果PC机有数据向DSP发送,那么DSP就将PC机发送来的数据会送给PC机。 DSP通信流程图如图所示开始 初始化DSP时钟初始化SC
15、I各控制寄存器 发送启动信息到串口 串口是否有输入信息? 否 接收到信息回发 是 DSP通信流程图5.4 DSP通信的软件设计上位机VC串口程序/ SCommTestDlg.cpp : implementation file/#include stdafx.h#include SCommTest.h#include SCommTestDlg.h#ifdef _DEBUG#define new DEBUG_NEW#undef THIS_FILEstatic char THIS_FILE = _FILE_;#endif/ CSCommTestDlg dialogCString statecom=C
16、OM1,statebit=8;/注意全局变量的初始化,用于显示状态编辑框int com_position=0,bit_position=3,baud_position=3,stop_position=0,check_position=0;/用来设置初始化光标位置const CString baud10=1200,2400,4800,9600,14400,19200,38400,56000,57600,115200;/设置波特率全局变量const CString stop2=1,2;/停止位const CString check3=N,O,E;/校验位int NUM_RX=0,NUM_TX=0;
17、/接收数据的计数值CSCommTestDlg:CSCommTestDlg(CWnd* pParent /*=NULL*/): CDialog(CSCommTestDlg:IDD, pParent)/AFX_DATA_INIT(CSCommTestDlg)m_strEditTXData = _T();m_strEditRXData = _T();m_strRxdata = _T();m_strTxNum = _T();/AFX_DATA_INIT/ Note that LoadIcon does not require a subsequent DestroyIcon in Win32m_hIc
18、on = AfxGetApp()-LoadIcon(IDR_MAINFRAME);void CSCommTestDlg:DoDataExchange(CDataExchange* pDX)CDialog:DoDataExchange(pDX);/AFX_DATA_MAP(CSCommTestDlg)DDX_Control(pDX, IDC_COMBO3_CHECKBIT, m_ctrlCheck);DDX_Control(pDX, IDC_COMBO5_STOPBIT, m_ctrlStopBit);DDX_Control(pDX, IDC_COMBO4_DATABIT, m_ctrlData
19、Bit);DDX_Control(pDX, IDC_COMBO2_BAUD, m_ctrlBaud);DDX_Control(pDX, IDC_EDIT1_STATE, m_ctrlState);DDX_Control(pDX, IDC_COMBO1_COMSECLET, m_ctrlComSelect);DDX_Control(pDX, IDC_BUTTON2_OPENIF, m_ctrlOpenIf);DDX_Control(pDX, IDC_MSCOMM1, m_ctrlComm);DDX_Text(pDX, IDC_EDIT2_TXDATA, m_strEditTXData);DDX_
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于VB的DSP-与PC机的串行通信 精品资料 基于 VB DSP PC 串行 通信 精品 资料
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内