文档库 最新最全的文档下载
当前位置:文档库 › VLC添加控制命令

VLC添加控制命令

VLC添加控制命令
VLC添加控制命令

VLC添加控制命令

1, 在rc.c文件中的RegisterCallbacks()函数中添加变量名称:

var_Create( p_intf, "select", VLC_V AR_INTEGER | VLC_V AR_ISCOMMAND ); // zws var_AddCallback( p_intf, "select", Input, NULL );

2, 在rc.c文件中的Input()函数中添加命令处理代码:

else if( !strcmp( psz_cmd, "select" ) )

{

val.i_int = ((int)atoi( newval.psz_string ));

var_Set( p_input, "program-num", val );

vlc_object_release( p_input );

return VLC_SUCCESS;

}

3, 在input_internal.h文件中的input_control_e枚举类里添加相应的操作变量: INPUT_CONTROL_SET_PROGRAM,

4, 在var.c文件中的input_ControlVarInit()函数中添加创建变量的代码:

/* Program-num*/ // zws

var_Create( p_input, "program-num", VLC_V AR_INTEGER );

val.i_int = 0;

var_Change( p_input, "program-num", VLC_V AR_SETV ALUE, &val, NULL );

var_AddCallback( p_input, "program-num", ProgramCallback, NULL );

5, 在var.c文件中添加相应的回调函数:

static int ProgramCallback( vlc_object_t *p_this, char const *psz_cmd,

vlc_value_t oldval, vlc_value_t newval,

void *p_data )

{

input_thread_t *p_input = (input_thread_t*)p_this;

input_ControlPush( p_input, INPUT_CONTROL_SET_PROGRAM, &newval );

return VLC_SUCCESS;

}

6, 在input.c文件中的Control函数中添加相应的操作分支:

case INPUT_CONTROL_SET_PROGRAM:

/* No need to force update, es_out does it if needed */

es_out_Control( p_input->p_es_out,

ES_OUT_SET_GROUP, val.i_int );

demux2_Control( p_input->input.p_demux, DEMUX_SET_GROUP, val.i_int,

NULL ); break;

用Visual Basic 实现串口通信的三种方法

网络用V isual Basic实现 串口通信的三种方法 ●赵海燕 目前,V isual Basic(简称V B)已成为WINDOWS系统开发的主要语言,以其高效、简单易学及功能强大的特点越来越为广大程序设计人员及用户所青睐。V B支持面向对象的程序设计,具有结构化的事件驱动编程模式并可以使用无限扩增的控件。在V B应用程序中可以方便地调用WINDOWS API 函数,使得编程效率提高,应用功能增强。 利用V B提供的这些功能,我们可以有三种方法完成串口通信。一种是用V B提供的具有强大功能的通信控件;另一种方法是调用WINDOWS API函数,使用WINDOWS提供的通信函数编写移植性强的应用程序;第三是利用文件的输入/输出完成,该方法简便易行,但有一定的局限性。 一、利用通信控件(MSCOMM)完成串口通信 V B提供了通信控件M SCOM M,文件名为M SCOM M.V BX。该控件可设置串行通信的数据发送和接收,对串口状态及串行通信的信息格式和协议进行设置。在通信过程中可以触发OnC omm事件,在该事件过程进行数据检验处理及检错,还可以通过编程访问C ommE vent属性来了解通信的情况,进行收发数据的处理。每个通信控件对应一个串口,如果要访问多个通信口,则要设计多个通信控件。 1.通信控件的事件及基本属性 (1)事件 OnC omm:通信控件只提供了一个事件,该事件的触发可以对串口的通信事件及错误进行处理。通过对C ommE vent属性的判断可知当前的通信错误和事件,分别对每个C om2 mE vent值进行编程就完成了对各个错误和事件的处理。如: C ommE vent=M SCOM M—EV—SEND表示发送事件。这些信息可从V B提供的常量文件CONST ANT.T XT中查出。 (2)属性 C ommP ort:设置通信控件与哪个串口相连接,设置并返回通信口号。 S ettin g:设置通信的信息格式,为字符型。顺序为:波特率、校验、数据位、停止位。 P ortO p en:布尔型、开关通信口。 In p utLen:从接收缓冲区读取字符个数。 In p ut,Out p ut:读取接收缓冲区或写入发送缓冲区字符。 以上五种属性对串口完成基本的设置和操作,下面的三种属性是描述如何利用V B提供的事件驱动机制来实现通信。 C ommE vent:返回通信过程中产生的错误信息及事件,了解通信状况。 ST hresh old:设置并返回不触发OnC omm事件时发送缓冲区被允许的最少字符数。当缓冲区的字符少于设置的值时,则触发OnC omm事件,并把C ommE vent设为M SCOM M M—EV—SEND。当ST hresh old=0则禁止发送触发OnC omm事件,当ST hresh old=1则发送缓冲区为空时就触发OnC omm事件。利用这一属性,就可完成发送数据后的一系列操作。如:对刚发送的数据进行处理,当串口是和M ODEM通信时,发送完数据后可进行拆除线路联接、挂机等操作。 RT hresh old:设置并返回不触发OnC omm事件时接收缓冲区被允许的最多字符数。当缓冲区的字符多于设置的值时,则触发OnC omm事件,并把C ommE vent设为M SCOM M—EV—RECEIVE,当RT hresh old=0则禁止接收触发OnC omm事件,当RT hresh old=1则接收缓冲区有一个或更多字符时就触发OnC omm事件。利用这一属性,就可完成对串口接收数据的处理。 2.利用通信控件的实例 Sub F orm1—load() form1.sh ow ′设置COM1 https://www.wendangku.net/doc/9313414641.html,m p ort=1 comm1.S ettin g="9600,o,8,1"′波特率:9600奇校验,8位数据,1位停止位 comm1.In p utlen=0′读取接收缓冲区的所有字符comm1.OutBufferS ize=512′设置发送缓冲区为512字节comm1.InBufferS ize=512′设置接收缓冲区为512字节comm1.ST hresh old=0′禁止发送事件 comm1.RT hresh old=1′每一个字符到接收缓冲区都触发接收事件 ′设置COM2 https://www.wendangku.net/doc/9313414641.html,m p ort=2 comm2.S ettin g="2400,e,8 ,1"

智能仪器与PC串口通信的实现

福建电脑2010年第2期 图1SCPI 工作流程图 智能仪器与PC 串口通信的实现 管 平1,杨 丹2,胡新荣1 (1.武汉科技学院湖北武汉430073 2.长沙信息职业技术学校湖南长沙410610) 【摘要】:本文简要介绍了IEEE488.2标准,讨论了如何使用该协议进行智能仪器设备控制系统的编写.详细地介绍了SCPI 命令及其使用方法。利用Agilent 公司的IO suite 套件中的VISA 库实现对Agilent34401A 数字万用表的远程控制。 【关键词】:IEEE488.2,Agilent34401A ,SCPI 1、引言 1.1串口通信原理 在Windows 环境下,串行接口是系统资源的一部分。它本质功能是作为CPU 和串行设备间的编码转换器。当数据从CPU 经 过串行接口发送出去时,字节数据转换为串行的位。在接受数据时,串行的位被转换为字节数据。RS-232C 标准的全称是EIA-RS-232C 标准,其中EIA 代表美国电子工业协会,RS 代表推荐标准,232是标识号,C 代表RS232的最新一次修改。1.2SCPI 命令 Agilent34401A 数字多用表采用串口与IEEE488进行通信的技术,它能够得到精准、快速和可重复的测量结果。为了保证前向和后向兼容性,34401A 包括三种命令语言(SCPI 、Agi -lent3478A 和Fluke8840A/42A ),因此无需重写已有的测试软件。 SCPI (Standard Commands for Programmable Instruments )是可编程仪器标准命令,是一种建立在现有标准IEEE488.1和IEEE 488.2基础上,遵循了IEEE754标准中浮点运算规则、ISO646信息交换7位编码符号(相当于ASCll 编程)等多种标准的标准化仪器编程语言。它采用一套树状分层结构的命令集,提出了一个具有普遍性的通用仪器模型,采用面向信号的测量;它的助记符产生规则简单、明确,且易于记忆。SCPI 是以ASCII 字符组成的标准仪器命令语言,可以用于任何一种标准接口,如GPIB ,VXI ,RS232,USB ,LAN 。 SCPI 命令采用层次结构,系"树结构"语言。相关的命令集合到一起构成一个子系统,各组成命令称为"关键字",各关键字间用冒号":"分隔,如: SEN Se :FREQuency : VOLTage :RAN Ge ?[M INimum|MAXimum ] 方括弧([])表示选择性的关键字或参数。大括弧({})中为命令字串的参数。三角括弧(<>)表示必须用一数值来取代括号中的参数。(|)隔开多重参数的选择。 MEASure :VOLTage:DC?{|MIN|MAX|DEF},{|MIN|MAX|DEF} :VOLTage:AC?{|MIN|MAX|DEF},{|MIN|MAX|DEF} :CURRent:DC?{|MIN|MAX|DEF},{|MIN|MAX|DEF} :CURRent:AC?{|MIN|MAX|DEF},{|MIN|MAX|DEF} 从以上可以看出,SPCI 命令可以望文生意,简单明了,实际 SCPI 语言等于把各仪器的各种功能命令罗列起来完成某项测 量任务。 MEASure ?命令是设定仪器进行测量的最简单方法,在执 行这个命令的时候仪器必须先设置好所要求的状态,并立即执行测量。CONFigure 命令在执行的时候,仪器必须先将所要的配置预设成最好的设定,并且立即执行测量。 READ ?命令会将触发系统的状态,从"闲置"状态改为"等待触发"状态。在收到R EAD ?命令之后,且指定的触发条件满足时,测量便会开始,读数立即送到输出缓冲器上(读数资料必须输入到总线控制器上,否则输出缓冲器满了之后,测量就会停止)。INITiate 和FETCh?命令提供测量触发和读数取回最低限的控制。在配置好多用电表之后,使用INITiate 命令,它将使触发系统的状态,从"闲置"状态改为"等待触发"状态。在收到INITiate 命令之后,而指定的触发条件满足时,测量便会开始。读数将会存入多用电表的内部记忆体中。 .RST 重设多用电表电源开启时的配置。 .TST ? 执行多用电表的完整自我测试,传回值为"0"表示自我测试成功。它使用INITiate 将多用电表设至成"等待触发"状态,且在ExtTrig 端有脉冲进来的时候,量取一个读数,并将读数送到电表的内部记忆体上。2、硬件平台安装与配置 测试系统的建立,一般采用独立的测试或测量仪器,使用SCPI 命令或用软件驱动程序经GPIB ,USB ,LAN 接口发送ASCII 命令。 Agilent 34401A 数字多用表提供了一个GPIB 接口,在PC 和DMM 之间实现了简便稳定的连接能力。GPIB 接口满足IEEE-488.2标准,可以通过SCPI 命令进行远程控制。 我们选择NI 的AT-GPIB/TNT 卡与Agilent 34401A 进行通信.NI MAX 能发现所有NI 接口上的装置,但不能直接控制Ag -ilent 接口.如:VXI 的FireWire 接口,USB/GPIB 转换器,或PCL-GPIB 卡. Agilent 的Intuilink,VEE 和IO Libraries 能过NI -VISA 和NI488.2来连接GPIB-32.dll,如果应用程序使用VISA 编程,在对板卡基址配置完成后,先安装NI-VISA 软件包,再安装Agilent IO Libraries . 硬件安装与配置: 1)先安装NI-VISA IEEE488.2的板卡驱动程序.配置好GPIB 卡 2)设置万用表的通信方式:把agilent34401A 的通信方式设置为GPIB 通信方式,编程语言选择SCPI 。 3)安装Agilent 公司的IO 套件(iolibs_suite_14_2_8931_1_multimedia ),随IO 套件一起安装的还有的.net framework ,.net framework sp1,VISA 库,IO 套件必须要有VISA 库才能正常运行.在桌面任务栏的右下角会有一个IO 标志,打开Agilent connec -tion expert(安捷伦连接专家),它会自动检测到安装的硬件,使用GPIB0连接到万用表,这里也可测试计算机与(下转第137页 ) 168

实验单片机与PC机串口通信

实验单片机与PC机串口通信(C51编程)实验 要求: 1、掌握串行口的控制与状态寄存器SCON 2、掌握特殊功能寄存器PCON 3、掌握串行口的工作方式及其设置 4、掌握串行口的波特率(bondrate)选择 任务: 1、实现PC机发送一个字符给单片机,单片机接收到后即在个位、十位数码管上进行显示,同时将其回发给PC机。要求:单片机收到PC机发来的信号后用串口中断方式处理,而单片机回发给PC机时用查询方式。 采用软件仿真的方式完成,用串口调试助手和KEIL C,或串口调试助手和PROTEUS分别仿真。 需要用到以下软件:KEIL,VSPDXP5(虚拟串口软件),串口调试助手,Proteus。 (1)虚拟串口软件、串口调试助手和KEIL C的联调 首先在KEIL里编译写好的程序。

打开VSPD,界面如下图所示:(注明:这个软件用来进行串口的虚拟实现。在其网站上可以下载,但使用期为2周)。 左边栏最上面的是电脑自带的物理串口。点右边的addpair,可以添加成对的串口。一对串口已经虚拟互联了,如果添加的是COM3、COM4,用COM3发送数据,COM4就可以接收数据,反过来也可以。 接下来的一步很关键。把KEIL和虚拟出来的串口绑定。现在把COM3和KEIL绑定。在KEIL中进入DEBUG模式。在最下面的COMMAND命令行,输入 modecom39600,0,8,1 %分别设置com3的波特率、奇偶校验 位、数据位、停止位 assigncom3sout %把单片机的串口和COM3绑定到一 起。因为所用的单片机是

(以上参数设置注意要和所编程序中设置一致!) 打开串口调试助手 可以看到虚拟出来的串口COM3、COM4,选择COM4,设置为波特率9600,无校验位、8位数据位,1位停止位(和COM3、程序里的设置一样)。打开COM4。 现在就可以开始调试串口发送接收程序了。可以通过KEIL发送数据,在串口调试助手中就可以显示出来。也可以通过串口调试助手发送数据,在KEIL中接收。 实验实现PC机发送一个字符给单片机,单片机接收到后将其回发给PC机。在调试助手上(模拟PC)发送数据,单片机收到后将收到的结果回送到调试助手上。 2、以下在Proteus和串口调试助手实现的结果: 将编译好的HEX程序加载到Proteus中,注意这里需要加上串口模块,用来进行串行通信参数的设置。 点击串口,可以对串口进行设置: 用串口调试助手发送数据,即可看到仿真结果。 实验参考程序源文件在exp2-comm文件夹中。

工业控制--串口通讯方法(精)

工业控制--串口通讯方法(WINAPI实现)介绍介绍工业控制领域利用串口和外围设备进行通讯。正文前言:总所周之,利用串口进行数据通讯在在通讯通讯领域重占有着重要的地位。利用RS232-RS485进行数据信号的采集和传递是VC 编程的又一大热点。串口通讯在通讯软件重有着十分广泛的应用。如电话、传真、视频和各种控制等。在各种开发工具中间,VC由于功能强大和灵活,同时也得到了Microsoft的最大支持,所以在一般进行涉及硬件操作的通讯编程重,大都推荐使用VC作为开发工具。然而工业控制串口通讯这个又不同于一般的串口通讯程序,因为控制外围设备传送的大都是十六进制数据(BYTE类型),所以,为了提高程序的运行稳定性,我们在编写程序进行通讯时可以不考虑传送BYTE类型数 据的工作。串口通讯目前流行的方法大概有两种:一是利用Microsoft提供的CMSCOMM控件进行通讯,不过现在很多程序员都觉应该放弃这种方式。二是利用WINAPI函数进行编程,这种编程的难度最高,要求你要掌握很多的API函 数。三是利用现在网络上面提供的一些串口通讯控件进行编写,比如CSerial类等。程序实现:我在经过许多的项目的开发和实践中发现,采用WIN API函数进行串口的开发能够给程序员很大的控件,并且程序运也很稳定。所以我将与串口接触的函数进行封装,然后在各个工程中进行调用,效果还是比较好的,现将各个函数和调用方法列举出来,希望对各位有所帮助。一、设置串口相关工作 #define MAXBLOCK 2048 #define XON 0x11 #define XOFF 0x13 BOOL SetCom(HANDLE &m_hCom, const char *m_sPort, int BaudRate, int Databit, CString parity, CString stopbit { COMMTIMEOUTS TimeOuts; ///串口输出时间超时设置 DCB dcb; ///与端 口匹配的设备 m_hCom=CreateFile(m_sPort, GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL | FILE_FLAG_OVERLAPPED, NULL; // 以重叠方式打开串口 if(m_hCom==INVALID_HANDLE_VALUE { AfxMessageBox("设置串口部分,串口打开失败"; /////重叠方式异步通信(INVALID_HANDLE_VALUE)函数失败。return FALSE; } SetupComm(m_hCom,MAXBLOCK,MAXBLOCK; //设置缓冲区memset(&TimeOuts,0,sizeof(TimeOuts; TimeOuts.ReadIntervalTimeout=MAXDWORD; // 把间隔超时设为最大,把总超时设为0将导致ReadFile立即返回并完成操作

使用宏指令执行串口通讯

Operation Manual of PanelMaster 使用宏指令执行串口通讯 Neomate Technologies Inc.

串口是计算机上一种非常通用的通讯协议,同时也是大多数仪器仪表设备的通用通讯协议。在触控屏应用程序的开发中,我们常常需要面临与外围数据源设备通信的问题。除了触控屏软件PanelMaster自带的许多驱动之外,我们也可以设计相应的串口通信程序,完成二者之间的数据通信任务。 串行端口的本质功能是作为CPU和串行设备间的编码转换器。当数据从 CPU经过串行端口发送出去时,字节数据转换为串行的位。在接收数据时,串行的位被转换为字节数据。 引脚 功能说明 缩写 1 数据载波检测 DCD 2 接收数据 RXD 3 发送数据 TXD 4 数据终端准备 DTR 5 信号地 GND 6 数据设备准备好 DSR 7 请求发送 RTS 8 清除发送 CTS 9 振铃指示 DELL 串口主要信号线定义 电气特性:数据传输速率最大可到20K bps,最大距离仅15m,一般在9600 bps,可以满足通讯需求。 PV提供了最通用的串口通讯服务General Device(COM)。使用串口通讯需选择服务General Device(COM),设置为 我们假设两台屏之间的串口通讯.接线图如下:

A触控屏的连接设置为: B触控屏的连接设置为:

由此可以看出,触控屏A是通过COM1和屏B的COM2进行通讯的,它们都使 用PanelMaster的General Device(COM)服务。 要使用宏指令实现串口的通讯,我们需要了解General Device(Com)。 General Device(Com) 说明 控件类别 代号 名称 存取 方式 说 明 Bit Device CTS_STS CTS 状态 只读该状态是程序从接收方读到的状 态,1表示禁止发送, 0 表示允许发 送,当EN_HS为1时,程序在发送前 检查该状态,等待直到允许发送时才 能发送,否则此次发送失败。写此状 态没有作用。 Bit Device EN_HS 检查握手信号 读写当该状态为1时,程序在发送前检查 CTS_STS是否允许发送,并且在发送 前禁止对方发送,并在发送结束后允 许对方发送。 Bit Device FLUSH 清空接收缓冲 区 只写写1清空接收缓冲区, 写0没有作用。读此状态为0。

stm32串口通信协议简单教程

STM32串口通信协议简单教程 一、修改串口UART1IT工程模版 用Keil MDK打开短学期资料中的工程示例→串口→UART1IT示例,查看main.c代码如图1所示: 图1 UART1IT串口示例代码 打开文件列表中的stm32f10x_it.c文件,找到UART1中断函数如图2所示代码: 图2 UART1串口中断函数

为方便起见,将整个USART1_IRQHandler函数剪切到main.c文件末尾如图3所示。并删除stm32f10x_it.c文件中的sp变量定义,如图4所示。 图3 移动串口中断函数 图4 去除stm32f10x_it.c中的sp变量声明 重新编译一次工程,看看修改是否出现错误,编译失败出现错误则需仔细检查刚才的修改是否正确。编译成功,下载工程到实验板,关闭下载程序。将实验板BOOT跳线至正常运行模式并重新上电。打开串口调试助手,选择实验板USB虚拟串口并打开,如图5所示。可以看到图中窗口不停的接收到“Hello world!”这样的字符串数据。在发送区域输入字符1,点击发送按钮,可以观察到实验板的流水灯速度变快了很多。

在main函数之前,添加按键扫描代码如图6所示,然后在main函数中,添加sendstr 数组,key和oldkey两个整数变量,如图7所示。

图6 添加按键扫描函数 图7 添加相关变量 接下来,在main函数的while主循环中,添加发送按键状态代码如图8所示。同时,将main函数中的Hello world字符串发送行注释掉,如图9所示。为使按键响应灵敏,可以将main.c文件开头的sp变量初始值由100改为10。 注意,资料包里面的串口调试助手UartAssit软件容易造成虚拟串口占用,甚至使系统崩溃。考虑到使用方便,推荐使用sscom42软件。这里给大家一个下载地址https://www.wendangku.net/doc/9313414641.html,/soft/53912.html

超级终端控制台命令行Serial串口调试工具-软件说明文档

超级终端控制台命令行Serial串口调试工具 软件文档 积分下载可免费提供技术支持,需要本程序源代码的可联系作者。 目录 1 设计目的 (2) 1.1 基本功能 (2) 1.2 开发环境 (2) 2 使用说明 (2) 2.1 页面介绍 (2) 2.2 调试窗口的使用 (3) 3 全局及运行流程 (3) 3.1 主函数流程 (3) 3.2 数据发送流程 (4) 3.3 数据接收流程 (4) 3.5 全局数据 (5) 3.5.1配置数据 (5) 4 各功能页面 (5) 4.1 串口参数配置页面ParamDialog (5) 4.1.1界面设计 (5) 4.1.2类设计 (6) 4.1.3保存配置文件 (7) 4.1.4加载配置 (7) 4.1.5显示端口信息 (7) 4.1.6指定名称处理 (7) 4.1.7指定波特率的处理 (7) 4.1.8填充候选参数 (8) 4.1.9显示UI页面 (8) 4.1.10获取页面的最新配置数据 (8) 4.1.11确认保存 (8) 4.2 主窗口页面MainWindow (8) 4.2.1界面设计 (8) 4.2.2类设计 (9) 4.2.3关闭窗口 (11) 4.2.4关闭串口 (11) 4.2.5连接串口 (11) 4.2.6写串口 (11) 4.2.7读串口 (11) 4.2.8处理出错信息 (11) 4.2.9快捷发送页面 (12) 4.2.10加载用户喜好配置 (12)

4.2.11保存用户喜好 (12) 4.3 控制台控件Console (12) 4.3.1控件设计 (12) 4.3.2类设计 (12) 4.3.3设置控制台的编辑状态 (13) 4.3.4自定义粘贴行为 (13) 4.3.5将数据显示到控制台 (13) 4.3.6按键响应处理 (14) 4.3.7鼠标点击响应处理 (14) 4.3.8查找关键字 (14) 4.4 选项配置页面ConfigDialog (14) 4.4.1界面设计 (14) 4.4.2类设计 (14) 4.4.3加载配置 (15) 4.4.4保存配置文件 (15) 4.1.5显示UI页面 (15) 4.1.6获取页面的最新配置数据 (16) 4.1.7加载默认配置按钮执行 (16) 4.1.8确认保存 (16) 1 设计目的 1.1 基本功能 仿照Windows XP以前系统带的串口超级终端的功能,通过实际使用经验,自行编写超级终端程序。可完成人机交互,配置信息保存,底部自带编辑窗口,可复制文件等功能,非常方便在需要用Console完成交互的情况下使用。其中串口名称、波特率可支持自定义,方便跨平台使用。MARK32000- 1.2 开发环境 采用Windows 系统下的Qt 5.10.1版本,串口库有使用Qt自带的串口类。 2 使用说明 2.1 页面介绍 运行程序后,会进入参数配置页面。选择好需要的串口号,波特率后,点击确定并保存。参数配置页面如下:

串口遥控器,按键,控制设计文档

遥控器按键设计文档 1、总体设计 TV 板卡Touch 串口传输按键码 遥控器红外码 串口传输触摸数据 PC USB 发送键盘码 本功能涉及到4个模块,分别为: A 、遥控器:根据用户按键发送对应红外码 B 、TV 板卡:与Touch 通过串口实现双向传输。 发射端:接收红外码,并解析为对应功能的按键码,然后将按键码通过串口发送给 Touch 。 接收端:接收Touch 发送的触摸数据,再通过触摸数据判断是否符合特定手势,若符合 手势则执行相应操作。 C 、Touch :与TV 板卡通过串口实现双向传输;与PC 通过USB 实现双向传输。 当检测到触摸时,通过USB 和串口同时发送触摸数据 当接收到TV 板卡的按键码命令时,通过USB 向PC 发送键盘的按键数据 D 、PC :接收Touch 的触摸数据和按键数据 2、键盘按键设计 a) Touch 端配置一个键盘设备,并提供发送键盘数据的命令接口。TV 板卡可通过串 口发送对应的命令实现相应的按键功能。 b) 键盘按键命令协议接口(具体串口通讯协议在后面定义) i. 按键操作 数据(16进制):1F F7 FC AD 01 02 00 组合键(1B) 普通键(1B) CheckSum ii. 按键按下 数据(16进制):1F F7 FC AD 02 02 00 组合键(1B) 普通键(1B) CheckSum iii. 按键抬起 数据(16进制):1F F7 FC AD 03 02 00 组合键(1B) 普通键(1B) CheckSum 其中组合键为:Win/Shift/Ctrl/Alt ,如果有多个组合键按下,则多个组合键的键值直接累加然后发送。 如实现按键S 功能,可发送命令:1F F7 FC AD 01 02 00 00 16 D8 如实现按键Ctrl+S 功能,可发送命令:1F F7 FC AD 01 02 00 01 16 D9 如实现按键Ctrl+Shift+S 功能,可发送命令:1F F7 FC AD 01 02 00 03 16 DB 3、TV 板卡与Touch 的硬件连接 a) 双向通信:触摸框提供TXD 、RXD 、GND 3个接口,TV 主板也需要有TXD 、RXD 、 GND 3个接口 b) 单向通信:触摸框提供TXD 、RXD 、GND 3个接口,TV 主板只需RXD 、GND 接口 c) 串口连接器接口定义

串口通信测试方法

串口通信测试方法 1关于串口通信的一些知识: RS-232C是目前最常用的串行接口标准,用来实现计算机和计算机之间、计算机和外设之间的数据通信。 在PC机系统中都装有异步通信适配器,利用它可以实现异步串行通信。而且MCS-51单片机本身具有一个全双工的串行接口,因此只要配以电平转换的驱动电路、隔离电路就可以组成一个简单可行的通信接口。 由于MCS-51单片机的输入和输出电平为TTL电平,而PC机配置的是RS-232C 标准串行接口,二者电气规范不一致,因此要完成PC机与单片机的数据通信,必须进行电平转换。 注明:3)RS-232C上传送的数字量采用负逻辑,且与地对称 逻辑1:-3 ~-15V 逻辑0:+3~+15V 所以与单片机连接时常常需要加入电平转换芯片: 2 实现串口通信的三个步骤: (1)硬件连接 51单片机有一个全双工的串行通讯口,所以单片机和计算机之间可以方便地进行串口通讯。进行串行通讯时要满足一定的条件,比如计算机的串口是 RS232电平的,而单片机的串口是TTL电平的,两者之间必须有一个电平转换电路,我们采用了专用芯片MAX232进行转换。我们采用了三线制连接串口,也就是说和计算机的9针串口只连接其中的3根线:第5脚的GND、第2脚的RXD、第3脚的TXD。电路如下图所示,MAX232的第10脚和单片机的11脚连接,第9脚和单片机的10脚连接,第15脚和单片机的20脚连接。 使用MAX232串口通信电路图(9孔串口接头) (2)串行通信程序设计 ①通信协议的使用 通信协议是通信设备在通信前的约定。单片机、计算机有了协议这种约定,

通信双方才能明白对方的意图,以进行下一步动作。假定我们需要在PC机与单片机之间进行通信,在设计过程中,有如下约定: 0x31:PC机发送0x31,单片机回送0x01,表示选择本单片机; 0x**:PC机发送0x**,单片机回送0x**,表示选择单片机后发送数据通信正常; 在系统工作过程中,单片机接收到PC机数据信息后,便查找协议,完成相应的操作。 ②串行通信程序设计主要有微机发送接收程序和单片机发送接收程序,微机上的发送和接收程序主要采用计算机高级语言编写,如C语言,因为了能够在计算机端看到单片机发出的数据,我们必须借助一个WINDOWS软件进行观察,这里利用如下图标的一个免费计算机串口调试软件,故而这一块计算机通信的程序可不写! 在单片机上主要用汇编或C编写,在使用串口之前,必须先对串口进行初始化,主要是设置产生波特率的定时器1、串口控制和中断控制。具体步骤如下:(1)确定定时器1的工作方式——编程TMOD寄存器(设置波特率); (2)确定串口的控制——编程SCON; (3)串口的中断方式,必须开CPU和源中断——编写IE寄存器; (4)计算定时器1的初值——装载TH1,TL1; (5)启动定时器1——编程TCON中的TR1位。 为何串行口的工作方式选择方式1,这是针对于我们平常最常用的,单纯一块板对应于我们的私人电脑,所以就无须考虑是哪一块板发来的信息,即无须分清是数据帧还是地址帧。因为此时属于直通方式,所以无须考虑的。 方式1为波特率可变的10位异步通讯接口方式,发送或接收一帧信息,包括1个起始位0,8个数据位和一个停止位1,。其中的起始位和停止位在发送时自动插入的。 输出:当单片机执行一条指令将数据写入发送缓冲SBUF且TI=0时,就启动发送。串行数据从TXD引脚输出,发送完一帧数据后,就有硬件置位TI。 输入:在(REN)=1时,串行口采样RXD引脚,当采样到1到0的跳变时,确认是串行发送来的一帧数据的开始位0,从而开始接收一帧数据。在接收到附加的第9位数据后,当满足(1)RI=0(2)SM2=0或接收到的第9位数据为1时,第9位数据(停止位)才进入RB8,8位数据才能进入接收寄存器,并由硬件置位中断标志RI.否则信息丢失。所以在方式1接收时,应先用软件清零RI和SM2标志。通常串行接口以方式1工作时,SM2置为0. 而我们现实中需要的是一个机器中多块板进行显示和读取数据,所以这里不得不采取SM2=1的多机通信,而且我们一般采取的方式为方式3,TB8发送数据位,在模式2和3是要发送的第9位。该位可以用软件根据需要置位或清除,通常这位在通信协议中做奇偶位,在多处理机通信中这一位则用于表示是地址帧还是数据帧。这里就可以根据地址判断出我们需要选取的板是不是方位监测板。 注明:如果用C语言来写的话,无论你是先发地址帧,然后数据帧,还是只发数据帧,最后显示的都是一样的内容,而汇编语言是不行的。 SM2:多机通信控制位,仅用于方式2和方式3. 接收状态时,当串行口工作于方式2或3时,以及SM2=1时,只有当接收

PC机之间串口通信的实现

PC机之间串口通信的实现 一、实验目的 1.熟悉微机接口实验装置的结构和使用方法。 2.掌握通信接口芯片8251和8250的功能和使用方法。 3.学会串行通信程序的编制方法。 二、实验内容与要求 1.基本要求 主机接收开关量输入的数据(二进制或十六进制),从键盘上按“传输”键(可自行定义),就将该数据通过8251A传输出去。终端接收后在显示器上显示数据。具体操作说明如下: (1)出现提示信息“start with R in the board!”,通过调整乒乓开关的状态,设置8位数据; (2)在小键盘上按“R”键,系统将此时乒乓开关的状态读入计算机I中,并显示出来,同时显示经串行通讯后,计算机II接收到的数据; (3)完成后,系统提示“do you want to send another data? Y/N”,根据用户需要,在键盘按下“Y”键,则重复步骤(1),进行另一数据的通讯;在键盘按除“Y”键外的任意键,将退出本程序。 2.提高要求 能够进行出错处理,例如采用奇偶校验,出错重传或者采用接收方回传和发送方确认来保证发送和接收正确。 三、设计报告要求 1.设计目的和内容 2.总体设计 3.硬件设计:原理图(接线图)及简要说明 4.软件设计框图及程序清单 5.设计结果和体会(包括遇到的问题及解决的方法) 四、8251A通用串行输入/输出接口芯片 由于CPU与接口之间按并行方式传输,接口与外设之间按串行方式传输,因此,在串行接口中,必须要有“接收移位寄存器”(串→并)和“发送移位寄存器”(并→串)。能够完成上述“串←→并”转换功能的电路,通常称为“通用异步收发器”(UART:Universal

modem串口调试命令

串口调试常用命令: 1. 拨号命令: atd,号码 2. 被叫摘机命令: ata 3. 退出命令: +++ ath 4.来电显示: AT+VCID=0 关 AT+VCID=1 开 ============= 用串口工具连接上Modem所在的那个端口。 比如你是外置Modem,连接在了COM1口上,就用串口工具打开COM1口。 如果是内置的话,多数在COM3口上,如果你不知道,可以打开设备管

理器在Modem属性页里看看。 OK,下面介绍AT指令。 常用AT指令有: ATZ 软复位modem。 AT&K0 关闭流控制。 AT&K3 使用RTS/CTS流控制。 AT&W0 把当前设置保存到写到modem的永久存储器中的出厂设置配置文件0中。 AT&Y0 当MODEM在上电时自动调用出厂设置0,这样就能保证每次 上电恢复我们预先设置的参数。 ATDn 拨号,其中n为电话号码。它必须是命令行中的最后一条指令,ATD命令使调制解调器摘机后,根据输入的参数拨号,以建立连接。 +++ 退出字符。切换调制解调器从在线状态到命令状态,而不会中断数据连接。 ATA 应答。它必须是命令行中的最后一条指令。调制解调器在应答方 式下继续执行连接程序。在与远端调制解调器交换载波后进入连接状态,如果没有检测到载波, 调制解调器将挂机。在连接过程中,通过DTE输入的任何一个字母都将中断这一命令。 ATH0 使调制解调器挂机 ATE0 关闭命令字符回显

ATE1 打开命令字符回显 AT&F 调MODEM的出厂设置 ATS0=n 将MODEM设置成自动应答,当MODEM检测到线路上的振铃音时开始计数,当有连续n声振铃音,则MODEM自动摘机,响应呼叫。注:每次输入AT指令后(除+++以外),输入+ Chr(13)即“Enter”键,即完成指令发送。如果用HEX格式发送,在命令头、尾都要加回车、换行代码。例如: ATE0————0D 0A 41 45 30 0D 0A 常见的响应有: OK 响应正确。 ERROR 错误码。 RING 响铃。 BUSY 占线。 NO ANSWER 无应答。 CONNECT 9600 拨号成功。 NO CARRIER 对方挂机。 NO DIALTONE 拨号无响应。 拨通电话: 当发送“ATD”+ 电话号码+ Chr(13)时,MODEM就开始拨号,拨号需要一定的时间,在拨号的过程中可以不断读取MODEM的CD指示灯的状态,当电话拨通后CD指示灯会点亮。并返回“CONNECT + 波特率”的信息。

串口通信测试方法

串口通信测试方法 1关于串口通信的一些知识: RS-232C 是目前最常用的串行接口标准,用来实现计算机和计算机之间、计算 机和外设之间的数据通信。 在PC 机系统中都装有异步通信适配器,利用它可以实现异步串行通信。而且 MCS-51单片机本身具有一个全双工的串行接口,因此只要配以电平转换的驱动 电路、隔离电路就可以组成一个简单可行的通信接口。 由于MCS-51单片机的输入和输出电平为 TTL 电平,而PC 机配置的是RS-232C 标准串行接口,二者电气规范不一致,因此要完成 PC 机与单片机的数据通信, 必须进行电平转换。 注明:3)RS-232C 上传送的数字量采用负逻辑,且与地对称 逻辑1: -3?-15V 逻辑0: +3?+15V 所以与单片机连接时常常需要加入电平转换芯片: 2实现串口通信的三个步骤: (1)硬件连接 51单片机有一个全双工的串行通讯口, 所以单片机和计算机之间可以方便 地进行串口通讯。进行串行通讯时要满足一定的条件,比如计算机的串口是 RS232电平的,而单片机的串口是 TTL 电平的,两者之间必须有一个电平转换电 路,我们采用了专用芯片 MAX232S 行转换。我们采用了三线制连接串口,也就 是说和计算机的9针串口只连接其中的3根线:第5脚的GND 第2脚的RXD 第3脚的TXD 电路如下图所示,MAX232的第10脚和单片机的11脚连接,第9 脚和单片机的10脚连接,第15脚和单片机的20脚连接。 使用MAX23舉口通信电路图(9孔串口接头) (2)串行通信程序设计 ① 通信协议的使用 通信协议是通信设备在通信前的约定。单片机、计算机有了协议这种约定, 通信双方才能明白对方的意图,以进行下一步动作。假定我们需要在 PC 机与单 f : MH v 广 CAP ? C A? ? CAP 2* CAP 1* CAP 2- CAP h RT^OUTL Tim R-OUT1 *"2 R-0UT2 €601 IOvF C 机H 印—— MAX232 16 VCC 10 PC 血

Windows命令行串口工具

Windows命令行串口工具 目录 Windows命令行串口工具 (1) 1、概述 (2) 2、参数列表 (2) 3、参数说明: (2) 4、帮助例子: (4) 5、下载地址: (4)

1、概述 由于windows平台没有类似linux下的minicom命令行式的超级终端工具,于是使用python在windows 32位的平台下写了一个。最终运行结果比较满意。 软件独立运行无需安装。经测试在win7与xp平台运行正常,其它平台没有进行测试。 软件的功能主要是包括最基本的纯超级终端模式、只接收数据、只发送数据(ASCII 下支持换行),支持从文件读数据发送到串口或写数据到文件中。加上参数(-H),支持转换数据成16进制。 2、参数列表 直接双击或在命令行下执行,如果不带任何参数,会显示帮助菜单。 3、参数说明: 参数:-l(英文字母:l) 说明: 如果端口可打开,则显示OK,否则显示:serial error。如下图所示:

参数:-H 说明: 如果添加此选项,则会对串口数据进行16进制处理并显示。 参数:-T 说明: 此选项会直接进入超级终端模式,此模式下,输入ctrl+z会提示用户,按(Y/y):退出终端。按(N/n):将ctrl+z输入终端。如下图所示: 参数:-L 说明: 从串口读多少行数据。注意,如果要使用此选项,最好使用参数(-t)设定一个超时值,如超时值为0,串口没有收到数据,程序会永远阻塞下去。 如果参数L设为0,则显示所示数据。 如果参数L设为1或其它,则显示所接收到的1行数据或其它自义的行数数据。 参数:-w 说明: 写数据到串口,如果发送ascii码到串口,可使用(\n)进行换行。如下图所示: 注意,请使用单引号对需要发送的数据圈起来。如果需要将发送的数据进行16进制处理,则加上-H参数即可。 参数:-f 说明: 从文件中读取数据发送到串口。程序每次处理文件的一行数据。 注意,如果文件不存在或不可读,则会报错。 参数:-F

PC串口通信

1.1 串口通信原理 在Windows 环境下,串行接口是系统资源的一部分。它本质功能是作为CPU 和串行设备间的编码转换器。当数据从CPU 经过串行接口发送出去时,字节数据转换为串行的位。在接受数据时,串行的位被转换为字节数据。RS- 232C 标准的全称是EIARS-232C 标准,其中EIA 代表美国电子工业协会,RS 代表推荐 标准,232 是标识号,C 代表RS232 的最新一次修改。 1.2 SCPI 命令 Agilent34401A 数字多用表采用串口与IEEE488 进行通信的技术,它能够得到精准、快速和可重复的测量结果。为了保证前向和后向兼容性,34401A 包括三种命令语言(SCPI、Agilent3478A和Fluke8840A/42A),因此无需重写已有的测试软件。 图1 SCPI 工作流程图 SCPI (Standard Commands forProgrammable Instruments)是可编程仪器标准命令,是一种建立在现有标准IEEE488.1 和IEEE 488.2基础上,遵循IEEE754 标准中浮点运算规则、ISO646 信息交换7 位编码符号(相当于ASCll 编程)等多种标准的标准化仪器编程语言。它采用一套树状分层结构的命令集,提出了一个具有普遍性的通用仪器模型,采用面向信号的测量;它的助记符产生规则简单、明确,且易于记忆。 SCPI 是以ASCII 字符组成的标准仪器命令语言,可以用于任何一种标准接口,如GPIB,VXI,RS232,USB,LAN。

SCPI 命令采用层次结构,系"树结构"语言。相关的命令集合到一起构成一个子系统,各组成命令称为"关键字",各关键字间用冒号" :"分隔,如: SEN Se : FREQuency : VOLTage : RAN Ge ? [ M INimum| MAXimum ] 方括弧( [ ] ) 表示选择性的关键字或参数。大括弧({ }) 中为命令字串的参数。三角括弧(< >)表示必须用一数值来取代括号中的参数。(|)隔开多重参数的选择。 MEASure :VOLTage:DC?{|MIN|MAX|DEF},{|MIN|MAX|DEF} :VOLTage:AC?{|MIN|MAX|DEF},{|MIN|MAX|DEF} :CURRent:DC?{|MIN|MAX|DEF},{|MIN|MAX|DEF} :CURRent:AC?{|MIN|MAX|DEF},{|MIN|MAX|DEF} 从以上可以看出,SPCI 命令可以望文生意,简单明了,实际SCPI 语言等于把各仪器的各种功能命令罗列起来完成某项测量任务。 MEASure ? 命令是设定仪器进行测量的最简单方法,在执行这个命令的时候仪器必须先设置好所要求的状态,并立即执行测量。CONFigure 命令在执行的时候,仪器必须先将所要的配置预设成最好的设定,并且立即执行测量。 READ ? 命令会将触发系统的状态,从"闲置"状态改为"等待触发"状态。在收到R EAD ? 命令之后,且指定的触发条件满足时,测量便会开始,读数立即送到输出缓冲器上(读数资料必须输入到总线控制器上,否则输出缓冲器满了之后,测量就会停止)。INITiate 和FETCh? 命令提供测量触发和读数取回最低限 的控制。在配置好多用电表之后,使用INITiate 命令,它将使触发系统的状态,从"闲置"状态改为"等待触发"状态。在收到INITiate 命令之后,而指定的触发条件满足时,测量便会开始。读数将会存入多用电表的内部记忆体中。 .RST 重设多用电表电源开启时的配置。 .TST ? 执行多用电表的完整自我测试,传回值为"0 "表示自我测试成功。它使用INITiate 将多用电表设至成"等待触发"状态,且在ExtTrig 端有脉冲进来的时候,量取一个读数,并将读数送到电表的内部记忆体上。 2、硬件平台安装与配置 测试系统的建立,一般采用独立的测试或测量仪器,使用SCPI 命令或用软件驱动程序经GPIB,USB,LAN 接口发送ASCII 命令。 Agilent 34401A 数字多用表提供了一个GPIB 接口,在PC和DMM 之间实现了简便稳定的连接能力。GPIB 接口满足IEEE-488.2 标准,可以通过SCPI 命令进行远程控制。 我们选择NI 的AT-GPIB/TNT 卡与Agilent 34401A 进行通信. NI MAX 能发现所有NI 接口上的装置,但不能直接控制Agilent接口.如:VXI 的FireWire 接口,USB/GPIB 转换器,或PCLGPIB卡。 Agilent 的Intuilink,VEE 和IO Libraries 能过NI-VISA 和NI488.2 来连接GPIB-32.dll,如果应用程序使用VISA 编程,在对板卡基址配置完成后,先安装NI-VISA 软件包,再安装AgilentIO Libraries。 硬件安装与配置: 1)先安装NI-VISA IEEE488.2 的板卡驱动程序. 配置好GPIB 卡

相关文档
相关文档 最新文档