您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > dSPACE串口通信
dSPACE应用串口数据通讯方法与实例dSPACE应用串口基本知识•串口端口有9针和15针两种形式。目前在控制领域最常用的是9针的这种。•配对的两个串口有公口和母口之分,把有针的那个端口称为公口,另一个称为母口。•9针串口的每根针都有指定的编号,在通讯过程中有不同的用途。•常用的串口通信方式有RS232、RS422、RS485。dSPACE应用•尽管串口有9根针可以供实用,但在控制领域中最经常使用其中的3根,分别是TXD,RXD和GND,已经足以满足控制中数据的发送和接收的需要。其它的针脚用与更复杂的外围设备的连接与控制。•这里我们讨论dSPACE通过此3根针实现的串口数据通讯的方法,并通过一实例来说明其中的操作步骤。串口基本知识•9针串口端口针脚编号及作用–1-DCD,载波检测;–2-RXD,接收数据;–3-TXD,发出数据;–4-DTR,数据终端准备好;–5-GND,信号地线;–6-DSR,数据准备好;–7-RTS,请求发送;–8-CTS,清除发送;–9-RI,振铃指示。dSPACE应用dSPACE对串口通讯的支持•dSPACE不同的版本对串口支持程度不同。•DS1401只支持RS232一种串口通讯模式,不支持RS422和RS485模式。•在DS1401中,RS232模式支持的最大数据波特率为115.2kBd。•每种模式都支持可设置的数据位数、奇偶校验位、停止位以及输入输出缓冲区大小。dSPACE应用使用dSPACE串口数据通讯的步骤•(1)硬件连线–MicroAutoBOX板并不向外提供串口端口9针形式的连接,并不能与相应的串口直接连接进行通讯。DS1401只对外提供一路串口通信的TXD和RXD.–为了使dSPACE与串口通讯,需要把MicroAutoBOX提供串口通讯能力的两根针引出,另一端与串口的公口或母口相连。dSPACE每个接口每根针的意义可以相关的帮助文档中获得。•(2)使用串口设置进行串口通讯设置–串口通讯设置模块包括了串口通讯模式、波特率、数据位、奇偶校验位、停止位以及输入输出缓冲区大小的设置,其它一些设置与dSPACE是否能与外界通讯成功也密切相关,将在实例讲解中详细讲述。–串口通讯设置模块名称是SerialSetup。如果有其它的串口通讯模块存在于模型中(比如读模块或写模块),则该模块必须存在,否则不能通过编译。dSPACE应用•(3)使用串口读写模块接收或发送数据–串口读写模块完成实际的数据接收或发送功能。–串口读写模块利用相应串口设置模块中的设置信息,与外部设置进行通讯。–串口读写模块均配有独立的设置选项,将在实例中再进行详细的说明。使用dSPACE串口数据通讯的步骤dSPACE应用dSPACE与PC串口数据通讯实例•这里通过实例演示利用dSPACE进行串口通讯的详细步骤以及程序的编写方法。•实例例演示了dSPACE与PC机之间互相通讯,即从dSPACE发送数据给PC机,PC机同时给dSPACE发送数据,它们之间接收数据和发送数据同时进行,互不影响。dSPACE应用•准备工作–接线•把dSPACE串口通讯所需的数据线引出,并连接上一个串口。这里串口端口可以选择公口或母口,取决于被控设备的串口端口。•注意,虽然从dSPACE接出的串口端口形式可以不同,但是接选择公口或母口会导致其接线方式的不同。其原因是因为前面对串口针脚信号的定义是针对公口的,而对于两个利用串口通讯的设备来说,一端的发送数据,对应另一端的接收数据,这样双方才能顺利地进行通讯。因此,当选择公口时,dSPACE的TXD接串口端口的3脚,RXD接串口端口的2脚。如果选择母口时,dSPACE的TXD接串口端口的2脚,RXD接串口端口的3脚。如果上述针脚接错,将导致不能正确通讯。dSPACE与PC串口数据通讯实例dSPACE应用•准备工作–PC机端串口通讯软件•PC机端串口通讯软件负责从串口接收dSPACE发送来的数据,同时给dSPACE发送数据。•为了调试的需要,我们不必要懂得如何在PC机上编写串口通讯软件,也不必要从头开始编写。目前,比较常用的一个软件为“串口调试助手”,该软件完全免费,功能齐全,容易使用,而且已经过大多数人的测试及认可,是串口调试必不可少的一个工具。•串口调试助手只支持三线制的串口通讯,这已满足控制领域的需要。串口调试助手能选择串口号,设置波特率、奇偶校验位、数据位、停止位,支持十六进制发送和显示,支持定时发送和手动发送,支持文件发送,对接收的数据保存成文件等功能。dSPACE与PC串口数据通讯实例dSPACE应用•串口调试助手界面dSPACE与PC串口数据通讯实例dSPACE应用•建立dSPACE串口通讯程序–打开Matlab/Simulink,新建一个Simulink仿真程序。如图所示。dSPACE与PC串口数据通讯实例dSPACE应用•建立dSPACE串口通讯程序–从Simulink模块库中选择dSPACE串口设置模块,其位置位于dSPACERTI1401DS1401StandardI/OSERTYPE1库中,如图所示。dSPACE与PC串口数据通讯实例dSPACE应用•建立dSPACE串口通讯程序–选择其中的串口通讯设置模块DS1103SER_SETUP,并拖动放入刚建立的空白仿真程序中,如图所示。dSPACE与PC串口数据通讯实例dSPACE应用•建立dSPACE串口通讯程序–双击串口通讯设置模块,将弹出串口通讯设置选项窗口(注意,此前必须先插入dSPACE加密狗,否则无法弹出该窗口),如图所示。该选项窗口中有四个选项卡,每个选项均提供了对串口通讯不同的设置,下面将详细介绍各个设置内容及其对串口通讯的影响。dSPACE与PC串口数据通讯实例dSPACE应用•建立dSPACE串口通讯程序–第一个选项卡名称为Unit,意为“模块”,提供了一行文字说明,表达设置该模块的意图为“为通用异步接收和传送接口设置全局选项”。用于选择串口通道,在些两项均选“1”。(ChannelNumber为1时为串口通信,2时为Lin通信)dSPACE与PC串口数据通讯实例dSPACE应用第二个选项卡名称为UART,意为“通用异步接收和传送”,该选项卡包含了大多数对串口正常通讯有着关键影响的设置。下面逐一解释各个选择的含义。第一行Transceiver,即传输模式,根据UNIT项的设定,此处自动为RS232,不能修改。第二行Baudrate,即波特率设置,这里需要输入一个值,最大可输入值为115200,此例中设为57600。第三行Databits,即数据位数设置,可供选择有5,6,7,8,此例中设为8。第四行Stopbits,即停止位设置,可供选择有1,1.5,2,此例中设为1。dSPACE与PC串口数据通讯实例dSPACE应用第五行Parity,即奇偶校验位设置,可供选择有No,Odd,Even,Forceparityone,ForceParityzero,此例中设为No。第六行为CopydatatoRXSWFIFOafterreceptionof?bytesatlatest,意为在收到最近的多少个字节数据后,把这些数据拷贝到输入缓冲区。可供选择的设置有1,4,8,14。,此例中设为14。dSPACE与PC串口数据通讯实例dSPACE应用•建立dSPACE串口通讯程序–第三个选项卡名称为FIFO,意为“输入输出缓冲区”,在这里可以设置接收或发出数据时缓冲区的大小,也可以对接收的缓冲区作更细致的设置。选项中的SWFIFOsize指输入输出缓冲区的大小,单位为字节。这里可以输入一个数字,但是该数字必须是2的n次幂,否则不予接受。默认缓冲区的大小为64字节。本例中,使用默认值64字节,不需要修改。–该选项卡中还有一个专门针对接收缓冲区的设置,即RXSWFIFO,其中的Overwritemode是指当接收缓冲区中已经满了,新的数据又来了,该如何处置原来缓冲区中的数据。这里提供了两种选择,Discardnewdata指丢弃新的数据,不予接收,Replaceolddatawithnewdata指用新的数据覆盖原来的数据。当选择后者时,下面允许设置被覆盖块的大小。不同的选择会导致dSPACE产生不的行为。这里采用默认设置,即Discardnewdata。dSPACE与PC串口数据通讯实例dSPACE应用•建立dSPACE串口通讯程序–第四个选项卡为Advanced,意为“高级设置”。在该选项卡里只有一个选项,DisableUARTontermination,意为在通讯结束时,禁用UART。默认情况下被选择,不需要修改。如图所示。dSPACE与PC串口数据通讯实例dSPACE应用•建立dSPACE串口通讯程序–同样从库中把串口读模块CAN_TYPE1_SER_RX_M1_C1加入到仿真程序中。如图所示。dSPACE与PC串口数据通讯实例dSPACE应用dSPACE与PC串口数据通讯实例•建立dSPACE串口通讯程序–双击串口读模块,打开其选项设置窗口。如图所示。串口读模块选项设置窗口共有三个选项卡,第一个选项卡为Unit,与串口设置模块设置窗口中的第一个选项卡一样,填写方式也一致,这里不详细解说。dSPACE应用•建立dSPACE串口通讯程序–第二个选项卡为RXParameters,意思为接收参数。如图所示。该选项卡中有两个大的设置组,其中第一个组为接收模式设置,第二个组为接收字节数设置。第二个组下面根据所设置不同,有更多的子选项。下面分别介绍。dSPACE与PC串口数据通讯实例dSPACE应用•建立dSPACE串口通讯程序–在接收模式设置组中,可以设置当读缓冲区中的数据少于设定的接收字节数时,如何处理。有两个选择项,其一为Readavailableanyway,即无论缓冲区中有多少数据,都读取并传送给用户。这时可能导致用户接收到的数据不是设定的字节数。选项二为Skipreadoperation,即忽略读操作,直到缓冲区的数据多于或等于设定的接收字节数时才执行读操作,这保证了用户接收到的数据永远为指定的大小。–在接收字节设置组中,有两个子选项组,在同一时刻,只允许其中一个是可设置的。这通过Parameterflexibility,即参数的可变性选项来控制。如果该选项设置为tunable,则指接收的字节数是可变的,其具体大小在运行的过程中可通过模块的NumBytes接口输入(选中byinputport选项),或在该模块中指定大小,在程序运行时该值通过ControlDesk实时修改。如果设置为non-tunable,则接收的字节大小将一直保持不变。无论以何种方式指定,其可接收的最大字节数为串口设置模块中设定的输入输出缓冲区值减去一。dSPACE与PC串口数据通讯实例dSPACE应用•建立dSPACE串口通讯程序–第三个选项卡为高级设置选项,该选项卡可以设置是否启用NumRXBytes和Status输出口。NumRXBytes说明本次接收到的字节数,即NumBytes输出口中数据量的大小。Status输出口说明了本次读操作是否成功或失败。如果成功,该输出口的值为0,否则为其它值,详细的说明请查阅dSPACE帮助。在较复杂的控制程序中,这两个值为下一步的程序逻辑提供了依据。–启用NumRXBytes和Status输出口,以便在ControlDesk中监视读操作的状态。如图所示。dSPACE与PC串口数据通讯实例dSPACE应用•建立dSPACE串口通讯程序–我们把读取到的数据保存在一个DataMemory中,Status端口和NumRXBytes端口简单的忽略。结果如图所示。dSPACE与PC串口数据通讯实例dSPACE应用•建立dSPACE串口通讯程序–我们已经可以从串口接收数据并保存了下来,下一步就是要建立从串口发送数据的程序。发送数据利用的是dSPACE库中的串口写模块CAN_TYPE1_SER_TX_M1_C1,我们从库中把该模块拖出放到窗口上。如图所示。dSPACE与PC串口数据通讯实例dSPACE应用•建立dSPACE串口通讯程序
本文标题:dSPACE串口通信
链接地址:https://www.777doc.com/doc-5528607 .html