各种串口说明
CH9121串口配置说明

命令码
注释
读命令,获取配置(0x57 0xab + 命令码)
0x60
读取芯片工作模式,返回 1 字节
0x61
读取芯片 IP 地址,返回 4 字节
0x62
读取芯片掩码,返回 4 字节
0x63
读取芯片网关,返回 4 字节
0x64
读取芯片源端口号,返回 2 字节
0x65
读取芯片目的 IP 地址,返回 4 字节
//更新配置参数至 EEPROM //执行配置 //离开配置模式
//读取 MAC //返回 MAC //读取源 IP //返回 IP 地址
//02: UDP 广播模式。 //源 IP:192.168.1.10 //子网掩码:255.255.255.0 //网关:192.168.1.1 //本地端口:0x1388(5000) //目的 IP 地址:255.255.255.255 //目的端口:0x1770(6000) //串口波特率:0x0001c200(1152000)
二、串口配置命令码
CH9121 串口配置命令格式为:0x57,0xAB,命令码,数据。
1、写命令操作
命令码 功能
举例(注释)
写命令流程:发送命令码 1(0x57 0xab + 命令码 1+数据 ) + 等待 CH9121 ACK(0xAA) +发
送命令码 2(0x57 0xab + 命令码 2+数据 ) + 等待 CH9121 ACK(0xAA) +……+发送命令码
ห้องสมุดไป่ตู้设置串口波特率
0x57 0xab 0x21 0x80 0x25 0x00 0x00
(9600)
A33_Vstar串口使用说明

深圳市锐尔威视科技有限公司A33-Vstar串口使用说明串口复用说明:由于UART0的2根线和TF卡的其中2根线是复用的(是A33芯片决定的),所以在开发过程中,UART0的Debug和模式和TF卡只能2选一,默认是关闭UART0调试,使用TF卡。
打开UART0调试模式:Android系统:打包时使用pack -d 命令,生成的固件名为:sun8iw5p1_android_vstar_card0.img此时不能使用TF卡Linux系统:修改lichee/tools/pack/chip/sun8iw5p1/config/vstar/sys_config.fex,搜索“mmc0”将sdc_used = 1 改为sdc_used = 0,重新打包固件此时不能使用TF卡修改Debug的级别修改lichee/tools/pack/chip/sun8iw5p1/config/vstar/default/env.cfg将loglevel=4 改为loglevel=7 或9数值越低,表示打印的log越少;数值越高,表示打印的log越多重新打包固件即可更改调试串口为UART2:Android系统:修改lichee/tools/pack/chip/sun8iw5p1/config/vstar/default/env.cfg将console=ttyS0,115200 改为console=ttyS2,115200重新打包固件Linux系统:修改lichee/tools/pack/chip/sun8iw5p1/config/vstar/default/env.cfg将console=ttyS0,115200 改为console=ttyS2,115200进入文件系统目录buildroot/target/dragonboard/rootfs修改/etc/inittab文件将ttyS0::respawn:/sbin/getty -n -l/bin/autologin -L ttyS0 115200 vt100 # GENERIC_SERIAL改成ttyS2::respawn:/sbin/getty -n -l/bin/autologin -L ttyS2 115200 vt100 # GENERIC_SERIAL重新编译dragonboard、打包固件第 - 1 - 页共 1 页。
USB TO RS232 485 TTL 用户手册说明书

USB TO RS232/485/TTL用户手册产品概述简介USB TO RS232/485/TTL是一款工业级USB转RS232/485/TTL隔离型转换器,采用原装FT232RL,内置电源隔离、ADI磁耦隔离和TVS等保护电路,铝合金外壳设计。
USB TO RS232/485/TTL操作简单,零延时自动收发转换,具有通信速度快、稳定、可靠、安全等特点,可适用于各种通信要求较高的工控设备或应用。
产品特性⚫支持USB转RS232、USB转RS485、USB转TTL(UART)通信⚫采用原装FT232RL,高速通信稳定、可靠、兼容性好⚫板载一体式电源隔离,可提供稳定的隔离电压,隔离端无须额外供电⚫板载一体式ADI磁耦隔离,可进行信号隔离,可靠性高、抗干扰强、功耗低⚫板载TVS(瞬态电压抑制管),可有效抑制电路中的浪涌电压和瞬态尖峰电压,防雷防静电⚫板载自恢复保险丝和保护二极管,可确保电流和电压稳定输出,防过流过压,抗冲击能力强⚫板载零延时自动收发转换电路,确保USB端与不同接口能快速稳定通信、互不干扰⚫板载TTL串口3.3V和5V电平转换电路,用户可通过开关切换TTL通信电平⚫铝合金外壳,氧化磨砂处理,CNC数控开孔,牢固耐用、工艺精美⚫外置3个LED指示灯,方便查看电源和信号收发状态⚫高品质USB-B和RS232接口材料,插拔顺畅,坚固可靠产品参数⚫产品类型:工业级光电隔离型转换器⚫通信速率:300-921600bps⚫主机接口:USB⚫设备接口: RS485/RS232/TTL⚫USB接口:◼工作电平:5V◼接口形式:USB-B型接口◼接口保护:200mA自恢复保险丝,隔离输出◼传输距离:约5米⚫RS485接口:◼接口形式:接线端子◼接口引脚:A+、B-、GND◼方向控制:硬件自动判别和控制数据传输方向◼接口保护:提供600W防雷、浪涌和15KV静电保护(预留120R平衡电阻焊盘) ◼传输距离:约1200米◼传输模式:点对多(至多32个节点,16个节点以上建议加中继器)⚫RS232接口:◼接口形式:DR9 公口◼接口保护:TVS管保护,浪涌和静电保护◼传输距离:约15米◼传输模式:点对点◼TTL(UART)接口:◼工作电平:3.3V或5V◼接口形式:接线端子◼接口引脚:TXD、RXD、GND◼接口保护:提供钳位保护二极管,防过压负压,抗冲击干扰◼传输模式:点对点⚫指示灯:◼PWR:电源指示灯,接入USB,检测到电压则亮红灯◼TXD:发送指示灯,有数据从USB口发出时亮绿灯◼RXD:接收指示灯,有数据从设备接口发回时亮蓝灯⚫使用环境:◼温度范围:-15℃~ 70℃◼湿度范围:5%RH ~ 95%RH⚫操作系统:Windows 10 / 8.1 / 8 / 7 / XP备注:RS485(板载预留120R平衡电阻焊盘,客户可以根据通讯数量考虑是否加入,建议在起止端加入也就是主机和最后一个设备上面各加一个120Ω的匹配电阻。
STM32F030_USART详细配置说明_stm32f030串口

STM32F030_USART详细配置说明_stm32f030串口串口是我们在编程时最经常用的问题,通常用它来发送和接收数据,同时它还有另外一个功能——检测程序是否正确,stm32f030系类单片机自然而然少不了串口,本文主要介绍STM32F030_USART的几个常用的简单应用和它的功能配置。
1、概述通用同步异步收发器(USART)提供了一个灵活的方式,使 MCU 可以与外部设备通过工业标准 NRZ 的形式实现全双工异步串行数据通讯。
USART 可以使用分数波特率发生器,提供了超宽的波特率设置范围。
可以使用DMA 实现多缓冲区设置,从而能够支持高速数据通讯•全双工,异步通讯•可配置的 16 倍或 8 倍过采样方法提供速度和时钟容忍度间的灵活选择•小数波特率发生器•自动波特率检测•单线半双工通讯•停止位个数可设置 - 支持 1 个或 2 个停止位•十四个中断源和中断标志•- CTS 切换•- LIN 断开检测•-发送数据寄存器空•-发送完成•-接收数据寄存器满•-检测到线路空闲•-溢出错误•-帧错误•-噪声错误•-奇偶错误•-地址 / 字符匹配•-接收超时中断•-块结束中断•-从 Stop 模式唤醒•校验控制:•-发送奇偶校验位•-接收数据的奇偶检查2、准备工作1.认真阅读STM32F030x数据手册2.了解USART的运行原理3.查看STM32F030开发板原理图和封装图4.电脑装有keil等编译软件3、寄存器说明控制寄存器 1(USART_CR1)控制寄存器 2(USART_CR2)控制寄存器 3(USART_CR3)波特率寄存器( USART_BRR)保护时间和预分频器寄存器( USART_GTPR)中断和状态寄存器(USART_ISR)中断标志清除寄存器( USART_ICR)数据接收寄存器( USART_RDR)数据发送寄存器( USART_TDR)4、USART配置ART原理图ART代码分析3.①USART初始化void Usart_Init(uint32_t BaudRate){ USART_InitTypeDef USART_InitStruct; GPIO_InitTypeDef GPIO_InitStruct; RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1,ENABLE); RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOA,ENABLE); /* PA9-TX-推挽复用PA10-RX-浮空输入/上拉输入*/ GPIO_PinAFConfig(GPIOA,GPIO_PinSource9,GPIO_AF_1);GPIO_PinAFConfig(GPIOA,GPIO_PinSource10,GPIO_AF_1); GPIO_InitStruct.GPIO_Pin=GPIO_Pin_9;GPIO_InitStruct.GPIO_Mode=GPIO_Mode_AF;GPIO_InitStruct.GPIO_OType=GPIO_OType_PP;GPIO_InitStruct.GPIO_Speed=GPIO_Speed_50MHz;GPIO_Init(GPIOA,&GPIO_InitStruct);GPIO_InitStruct.GPIO_Pin=GPIO_Pin_10;GPIO_InitStruct.GPIO_Mode=GPIO_Mode_AF;GPIO_InitStruct.GPIO_OType=GPIO_OType_PP;GPIO_InitStruct.GPIO_Speed=GPIO_Speed_50MHz;GPIO_InitStruct.GPIO_PuPd=GPIO_PuPd_UP;GPIO_Init(GPIOA,&GPIO_InitStruct); /*USART基本配置*/ USART_ART_BaudRate=BaudRate;USART_ART_HardwareFlowControl=USART_Hardwa reFlowControl_None;USART_ART_Mode=USART_Mode_Tx|USART_Mode_ Rx; USART_ART_Parity=USART_Parity_No; USART_ART_StopBits=USART_StopBits_1;USART_ART_WordLength=USART_WordLength_8b; USART_Init(USART1,&USART_InitStruct); /*使能接收中断*/ NVIC_Config(USART1_IRQn); USART_ITConfig(USART1, USART_IT_RXNE, ENABLE); USART_Cmd(USART1,ENABLE);}②USART发送数据void USART1_SendBuf(uint8_t *pBuf, uint32_tu32Len){ while(u32Len--) { /*判断发送缓冲区是否为空*/ while(!USART_GetFlagStatus(USART1,USART_FLAG_TXE)); USART_SendData(USART1,*pBuf++); }}③USART接收数据uint8_t USART1_ReciverBuf(void){ /*判断接收缓冲区是否为非空*/ while(!USART_GetFlagStatus(USART1,USART_FLAG_RXNE)); return USART_ReceiveData(USART1);}3 . printf函数重映射int fputc(int ch, FILE*f){ USART_SendData(USART1,(uint8_t)ch); while (!USART_GetFlagStatus(USART1, USART_FLAG_TXE)); return (ch);}5、总结在进行USART的printf函数的使用时,一定要记得将微库打开:点击keil工具栏的小魔术棒符号,进入Target配置,勾选Use MicroLib。
rs232和485串口GPRS DTU说明书

具有RS232和RS485两种接口,实现串口转GPRS透明传输;
四频:GSM850/900,DCS1800/1900,全球通用;
支持GSM/GPRS/EDGE网络;支持2G/3G/4G手机卡的2G流量;
支持2个网络连接同时在线,支持TCP和UDP;
每路连接支持4KB数据缓存,连接异常时可选择缓存数据不丢失;
3.8
USR-GPRS232-730支持通过串口进行升级,升级串口预留在PCB上,需要客户将外壳拆下,使用USB转TTL进行连接。接线孔从左到右依次是GND,RXD,TXD。
接下来使用我们提供专用的升级软件进行升级,首先要点击设置后加载固件
然后选择下载的串口号
然后返回主页点击全部开始即可
等待进度条到达最后升级完成。
本模块支持两路socket连接,分别为socket A和socket B,它们是相互独立的。USR-GPRS232-730支持仅支持作为TCP Client和UDP Client。
3.1.2
3.1.2.1
在此模式下,用户的串口设备,可以通过本模块发送请求数据到指定的HTTP服务器,然后模块接收来自HTTP服务器的数据,对数据进行解析并将结果发至串口设备。
3.设备接收到“OK”后,知道模块已回到之前的工作模式。
4.1.2.
串口AT指令是指工作在透传模式下,我们不需要切换到指令模式,可以使用密码加AT指令方法去查询和设置参数的方法。
4.1.3.
网络AT指令是指工作在透传模式下,通过网络发送密码加AT指令的方式去设置和查询参数。
4.1.4.
短信AT指令是指,我们可以使用短信的方式去查询和配置模块的参数。可以方便的远程设置模块的运行参数,为维护提供了便捷。
S7-200 SMART PLC 串口通信说明(图文并茂)

S 7-200 S M A R T 串口通信简介S 7-200 S M A R T 支持的串口通信硬件及连接资源如表 1所示: 注意:1. P P I 模式只支持 S 7-200 S M A R T C P U 与 H M I 设备之间的通信;2. 通信信号板的工作模式(R S 485/R S 232)是由用户决定的,可以在 M i c r o /W I N S M A R T 中通过设置系统块来设置。
详细设置方法见:如何设置串口通信参数 通信端口定义1.S 7-200 S M A R T C P U 本体集成 R S 485 端口 (端口 0)表 2. S 7-200 S M A R T C P U 本体集成 R S 485 端口引脚定义 2.通信信号板 表 1.S 7-200 S M AR T 串口参数CPU 本体集成通讯口通信信号板(S B C M 01)通讯口类型R S 485R S 485R S 232支持的通信协议P P I / 自由口 / M O D B U S / U S S 波特率P P I (9600,19200,187500 b /s )自由口(1200,115200 b /s )连接资源每个通信口可连接 4 个 H M I 设备C P U 插座(9针母头)引脚号信号P o r t 0(端口0)引脚定义1屏蔽机壳接地224V 返回逻辑地(24V 公共端)3R S -485信号 B R S -485信号 B4发送请求R T S (T T L )55V 返回逻辑地(5V 公共端)6+5V +5V ,通过100 O h m 电阻7+24V +24V8R S -485信号 A R S -485信号 A9不用10位协议选择(输入)金属壳屏蔽机壳接地表 3.通信信号板(P o r t 1)引脚定义通信信号板(S B C M 01)引脚标记R S 485R S 232机壳接地机壳接地T X /B R S 485-B R S 232-T x R T S R T S (T T L )R T S (T T L )M 逻辑公共端逻辑公共端R X /AR S 485-AR S 232-R x通信信号板通信信号板可以扩展 C P U 的通信端口,其安装位置如图 1所示。
CH9121串口配置说明

(255.255.255.0)
0x13
设置芯片网关
0x57 0xab 0x13 0xc0 0xa8 0x01 0x01
(192.168.1.1)
0x10
设置模式:00:TCP 服务器
0x57 0xab 0x10 0x01 (设置芯片工作在 TCP
01:TCP 客户端
客户端模式)
02:UDP 服务器
03:UDP 客户端
当串口空闲时间达到 500ms 时,CH9121 收到的串口数据与{0x55,0xAA,0x5A}对比,对比
成功,CH9121 会回复一字节:0xA5,500ms 时间内收到应答数据 0xA5 后,发送 0xA5 确
认进入配置模式。中途任何一个环节的数据比对出错,则认为这些数据位正常的串口数
据,并将这部分数据通过串口发往网络端。
CH9121 串口配置使用说明
一、进入与退出串口配置的方式
CH9121 支持两种方式进入配置模式:
1、硬件 CFG 脚(PIN60#),当 CH9121CFG 脚检测到低电平时,CH9121 串口数据
认为是配置数据。CFG 脚拉高退出配置模式。
2、 串口协商方式(需要先通过网络配置软件开启)进入串口配置模式。当
0x14
设置芯片本地端口
0x57 0xab 0x14 0xd0 0x07
(2000)ຫໍສະໝຸດ 0x15设置芯片目的 IP
0x57 0xab 0x15 0xc0 0xa8 0x01 0x64
( 192.168.1.100)
0x16
设置芯片目的端口
0x57 0xab 0x16 0xe8 0xe3
(1000)
0x21
命令码
注释
BS814A-2 串口应用说明

BS814A-2串口应用说明文件编码:HA0346S简介本篇介绍的是BS814A-2的串行接口应用。
功能说明传输格式(Data & Clock)时序图数据结构Start bit :当按键状态改变时,由Data 脚位送出低电平,唤醒主机,主机读取键值。
Bit 0:Key1状态 (0 = 按键、1 = 松键)。
Bit 1:Key2状态 (0 = 按键、1 = 松键)。
Bit 2:Key3状态 (0 = 按键、1 = 松键)。
Bit 3:Key4状态 (0 = 按键,1 = 松键)。
Bit 6~4:核对Bit 3 ~ bit 0 -- "0" 的总数,即被触摸按键的总数。
Bit 7:停止位,永远为 "1" (高状态)。
位 7 6 ~ 4 3 ~ 0 说明功能Stop bit Check Sum Key4 ~ Key1 State0: Touched / 1: Not Touched 数据流1 100 0000Check Sum = 100, Four keys are touched. 10110001, 0010, 0100 or 1000 Check Sum = 011, Three keys are touched.1 010 0011, 0101, 0110, 1001, 1010 or1100Check Sum = 010, Two keys are touched. 1 001 0111, 1011, 1101 or 1110Check Sum = 001, One key is touched. 1000 1111Check Sum = 000, No key is touched.4-key 串行数据流格式程序流程图程序范例SET Clock_C ;设置Clock pin为inputSET Data_C ;设置Data pin为inputCLR Receive_Buffer ;清除数据接收寄存器MOV A,8 ;接收8位数据MOV Receive_Count, AReceive_Loop:CLR Clock ;Clock = lowCLR Clock_C;-----DelayMOV A,20 ;delay 30µsSDZ AccJMP $-1;----Read bitSET Clock_C ;Clock = highSET C ;由data pin 读取数据SNZ Data ;CLR C ;RRC Receive_Buffer ;将数据右旋至寄存器内;-----DelayMOV A,20 ;delay 30usSDZ AccJMP $-1;-----Count down Receive_CountSDZ Receive_Count ;是否收到8位数据JMP Receive_loop;------Verify DataSNZ Receive_buffer.7 ;check stop bit = 1 ?JMP Receive_error;---MOV A,Receive_buffer ;MOV Data_Buffer,A ;CLR Key_pressed_Amount ;;-----MOV A,4 ;RRC Data_Buffer ;计算按键按下的总数SNZ C ;INC Key_Pressed_Amount ;SDZ ACC ;JMP $-4 ;;---- -Verify Check SumSWAPA Receive_buffer ;XOR A,Key_Press_AmountAND A,00000111BSZ ZJMP Receive_errorRET ;data correctReceive_error:;--do error functionRET补充说明•BS814A-2 Data & Clock内建上拉电阻!•当触控IC侦测到按键被按下时,Data脚位会输出低电平,可用来唤醒主机。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
各种串口说明1串口是计算机上一种非常通用设备通信的协议(不要与通用串行总线Universal Serial Bus或者USB混淆)。
大多数计算机包含两个基于RS232的串口。
串口同时也是仪器仪表设备通用的通信协议;很多GPIB兼容的设备也带有RS-232口。
同时,串口通信协议也可以用于获取远程采集设备的数据。
串口通信的概念非常简单,串口按位(bit)发送和接收字节。
尽管比按字节(byte)的并行通信慢,但是串口可以在使用一根线发送数据的同时用另一根线接收数据。
它很简单并且能够实现远距离通信。
比如IEEE488定义并行通行状态时,规定设备线总常不得超过20米,并且任意两个设备间的长度不得超过2米;而对于串口而言,长度可达1200米。
典型地,串口用于ASCII码字符的传输。
通信使用3根线完成:(1)地线,(2)发送,(3)接收。
由于串口通信是异步的,端口能够在一根线上发送数据同时在另一根线上接收数据。
其他线用于握手,但是不是必须的。
串口通信最重要的参数是波特率、数据位、停止位和奇偶校验。
对于两个进行通行的端口,这些参数必须匹配:a,波特率:这是一个衡量通信速度的参数。
它表示每秒钟传送的bit的个数。
例如300波特表示每秒钟发送300个bit。
当我们提到时钟周期时,我们就是指波特率例如如果协议需要4800波特率,那么时钟是4800Hz。
这意味着串口通信在数据线上的采样率为4800Hz。
通常电话线的波特率为14400,28800和36600。
波特率可以远远大于这些值,但是波特率和距离成反比。
高波特率常常用于放置的很近的仪器间的通信,典型的例子就是GPIB设备的通信。
b,数据位:这是衡量通信中实际数据位的参数。
当计算机发送一个信息包,实际的数据不会是8位的,标准的值是5、7和8位。
如何设置取决于你想传送的信息。
比如,标准的ASCII码是0~127(7位)。
扩展的ASCII码是0~255(8位)。
如果数据使用简单的文本(标准ASCII码),那么每个数据包使用7位数据。
每个包是指一个字节,包括开始/停止位,数据位和奇偶校验位。
由于实际数据位取决于通信协议的选取,术语“包”指任何通信的情况。
c,停止位:用于表示单个包的最后一位。
典型的值为1,1.5和2位。
由于数据是在传输线上定时的,并且每一个设备有其自己的时钟,很可能在通信中两台设备间出现了小小的不同步。
因此停止位不仅仅是表示传输的结束,并且提供计算机校正时钟同步的机会。
适用于停止位的位数越多,不同时钟同步的容忍程度越大,但是数据传输率同时也越慢。
d,奇偶校验位:在串口通信中一种简单的检错方式。
有四种检错方式:偶、奇、高和低。
当然没有校验位也是可以的。
对于偶和奇校验的情况,串口会设置校验位(数据位后面的一位),用一个值确保传输的数据有偶个或者奇个逻辑高位。
例如,如果数据是011,那么对于偶校验,校验位为0,保证逻辑高的位数是偶数个。
如果是奇校验,校验位位1,这样就有3个逻辑高位。
高位和低位不真正的检查数据,简单置位逻辑高或者逻辑低校验。
这样使得接收设备能够知道一个位的状态,有机会判断是否有噪声干扰了通信或者是否传输和接收数据是否不同步。
2RS-232(ANSI/EIA-232标准)是IBM-PC及其兼容机上的串行连接标准。
可用于许多用途,比如连接鼠标、打印机或者Modem,同时也可以接工业仪器仪表。
用于驱动和连线的改进,实际应用中RS-232的传输长度或者速度常常超过标准的值。
RS-232只限于PC串口和设备间点对点的通信。
RS-232串口通信最远距离是50英尺。
DB-9针连接头-------------\ 1 2 3 4 5 /\ 6 7 8 9 /-------从计算机连出的线的截面。
RS-232针脚的功能:数据:TXD(pin 3):串口数据输出RXD(pin 2):串口数据输入握手:RTS(pin 7):发送数据请求CTS(pin 8):清除发送DSR(pin 6):数据发送就绪DCD(pin 1):数据载波检测DTR(pin 4):数据终端就绪地线:GND(pin 5):地线其他RI(pin 9):铃声指示3RS-422(EIA RS-422-A Standard)是Apple的Macintosh计算机的串口连接标准。
RS-422使用差分信号,RS-232使用非平衡参考地的信号。
差分传输使用两根线发送和接收信号,对比RS-232,它能更好的抗噪声和有更远的传输距离。
在工业环境中更好的抗噪性和更远的传输距离是一个很大的优点。
4RS-485(EIA-485标准)是RS-422的改进,因为它增加了设备的个数,从10个增加到32个,同时定义了在最大设备个数情况下的电气特性,以保证足够的信号电压。
有了多个设备的能力,你可以使用一个单个RS-422口建立设备网络。
出色抗噪和多设备能力,在工业应用中建立连向PC机的分布式设备网络、其他数据收集控制器、HMI或者其他操作时,串行连接会选择RS-485。
RS-485是RS-422的超集,因此所有的RS-422设备可以被RS-485控制。
RS-485可以用超过4000英尺的线进行串行通行。
DB-9 引脚连接-------------\ 1 2 3 4 5 /\ 6 7 8 9 /-------从计算机连出的线的截面。
RS-485和RS-422的引脚的功能数据:TXD+(pin 8),TXD-(pin 9),RXD+(pin 4),RXD-(pin 5)握手:RTS+(pin 3),RTS-(pin 7),CTS+(pin 2),CTS-(pin 6)地线:GND (pin 1)5RS-232通行方式允许简单连接三线:Tx、Rx和地线。
但是对于数据传输,双方必须对数据定时采用使用相同的波特率。
尽管这种方法对于大多数应用已经足够,但是对于接收方过载的情况这种使用受到限制。
这时需要串口的握手功能。
在这一部分,我们讨论三种最常用的RS-232握手形式:软件握手、硬件握手和Xmodem。
a,软件握手:我们讨论的第一种握手是软件握手。
通常用在实际数据是控制字符的情况,类似于GPIB使用命令字符串的方式。
必须的线仍然是三根:Tx,Rx和地线,因为控制字符在传输线上和普通字符没有区别,函数SetXModem 允许用户使能或者禁止用户使用两个控制字符XON和OXFF。
这些字符在通信中由接收方发送,使发送方暂停。
例如:假设发送方以高波特率发送数据。
在传输中,接收方发现由于CPU忙于其他工作,输入buffer已经满了。
为了暂时停止传输,接收方发送XOFF,典型的值是十进制19,即十六进制13,直到输入buffer空了。
一旦接收方准备好接收,它发送XON,典型的值是十进制17,即十六进制11,继续通信。
输入buffer 半满时,LabWindows发送XOFF。
此外,如果XOFF传输被打断,LabWindows 会在buffer达到75%和90%时发送XOFF。
显然,发送方必须遵循此守则以保证传输继续。
b,硬件握手:第二种是使用硬件线握手。
和Tx和Rx线一样,RTS/CTS 和DTR/DSR一起工作,一个作为输出,另一个作为输入。
第一组线是RTS (Request to Send)和CTS(Clear to Send)。
当接收方准备好接收数据,它置高RTS线表示它准备好了,如果发送方也就绪,它置高CTS,表示它即将发送数据。
另一组线是DTR(Data Terminal Ready)和DSR(Data Set Ready)。
这些现主要用于Modem通信。
使得串口和Modem通信他们的状态。
例如:当Modem已经准备好接收来自PC的数据,它置高DTR线,表示和电话线的连接已经建立。
读取DSR线置高,PC机开始发送数据。
一个简单的规则是DTR/DSR 用于表示系统通信就绪,而RTS/CTS用于单个数据包的传输。
在LabWindows,函数SetCTSMode使能或者禁止使用硬件握手。
如果CTS 模式使能,LabWindows使用如下规则:当PC发送数据:RS-232库必须检测CTS线高后才能发送数据。
当PC接收数据:如果端口打开,且输入队列有空接收数据,库函数置高RTS和DTR。
如果输入队列90%满,库函数置低RTS,但使DTR维持高电平。
如果端口队列近乎空了,哭喊数置高RTS,但使DRT维持高电平。
如果端口关闭,库函数置低RTS和DTR。
c,XModem握手:最后讨论的握手叫做XModem文件传输协议。
这个协议在Modem通信中非常通用。
尽管它通常使用在Modem通信中,XModem协议能够直接在其他遵循这个协议的设备通信中使用。
在LabWindows中,实际的XModem应用对用户隐藏了。
只要PC和其他设备使用XModem协议,在文件传输中就使用LabWindows的XModem函数。
函数是XModemConfig,XModemSend和XModemReceive。
XModem使用介于如下参数的协议:start_of_data、end_of_data、neg_ack、wait_delay、start_delay、max_tries、packet_size。
这些参数需要通信双方认定,标准的XModem有一个标准的定义:然而,可以通过XModemConfig函数修改,以满足具体需要。
这些参数的使用方法由接收方发送的字符neg_ack确定。
这通知发送方其准备接收数据。
它开始尝试发送,有一个超时参数start_delay;当超时的尝试超过max_ties次数,或者收到接收方发送的start_of_data,发送方停止尝试。
如果从发送方收到start_of_data,接收方将读取后继信息数据包。
包中含有包的数目、包数目的补码作为错误校验、packet_size字节大小的实际数据包,和进一步错误检查的求和校验值。
在读取数据后,接收方会调用wait_delay,然后想发送方发送响应。
如果发送方没有收到响应,它会重新发送数据包,直到收到响应或者超过重发次数的最大值max_tries。
如果一直没有收到响应,发送方通知用户传输数据失败。
由于数据必须以pack_size个字节按包发送,当最后一个数据包发送时,如果数据不够放满一个数据包,后面会填充ASCII码NULL(0)字节。
这导致接收的数据比原数据多。
在XModem情况下一定不要使用XON/XOFF,因为XModem发送方发出包的数目很可能增加到XON/OFF控制字符的值,从而导致通信故障。