异步串行口——以太网设备服务器及应用
发布时间:2007/8/23 0:00:00 访问次数:472
吴康
本文介绍一种通过在TINI平台上建立一个应用层的有效简易方法,可将单独的串行设备迁移到以太网.并以应用实例作说明。
众所周知,当今难以计数的电子设备通过串口和其它设备通信。实际上,对于许多设备来讲,很多情况下,串行口是它们与外部世界通信的唯一渠道。例如自动调温器,销售点系统,远端监视器,条码阅读器,票据打印机,RFID(无线频率识别)收发器,血压计以及许许多多千差万别的现场设备,无论定是从传统的检测工具到最新的楼宇自动化等无不例外,但这些设备均没有直接参与用大型计算机网络的手段.而新的应用开发需要TCP/IP(传送控制协议/国际互连网协定)的连通性和以太网的通信能力。然而,昂贵的成本和耗时的设计常常又令人望而却步。怎么办?
本文介绍一种简易、经济的办法,通过在微型因网接口(Tiny InterNet Interfaces)TINI平台(该平台基于DS80C390或DS80C400微控制器实现)上建立一个应用层,可将单独的串行设备迁移到以太网。一旦将设备连接到以太网,TINl web服务,例如HTTP(超文本传送协议)服务器的实现便水到渠成。下面就该方法的几个方面作分折说明.
RS-232串口
本文所讨论的异步串行通信基于RS-232-C标准,可一直追溯到计算机历史的早期。RS-232-C发布于1969年。现在的大多数串行口不支持标准所规定的所有信号。此外,已实现的信号也只是以一种“相当接近”于标准的方式在使用。为此,将不考虑纯粹的历史定义,而只关注当前RS-232的使用方式。
空号和传号
RS—232—C规定“空号”(二进制0)为一个+3V至+25V的电平,“传号”(二进制1)为-3V至-25V。-3V和+3V之间的区域为“切换区”。很多通用异步收发器(UART)采用更现代的(相对来讲)TTL电平0V和+5V表示0和1。专用的电平转换器,例如著名的MAX232,可以实现TTL和RS—232电平的转换。因为DS80C390/DS80C400的串行口是TTL兼容的,因此在和其它TTL电平的UART接口时不必采用电平转换器。
DCE和DTE
数据通信设备(DCE)和数据终端设备(DTE)是一条通信信道的两个端点。它们之间的一个主要差别是串行连接器的插脚定义。通过一个所谓的空调制解调器可在它们两者之间进行转换。
表1列出DTE串行连接器DB-9上的信号定义,以及另外一个采用空调制解调器的DTE 上的对应信号。
流控制
串行通信时,你可以向一条芯线发送(TD)而从另外一条接收(RD)。然而,如果两个采用RD/TD通信的设备任意进行发送,其中一个有可能超速另一个而导致数据丢失。通常采用以下两种办法之一实现必要的流控制:
*XON/XOFF(常常简单地称为软件流控制)
*RTS/CTS(常常简单地称为硬件流控制)
XON/XOFF流控方式通过发送带内字符使另一侧暂停(XOFF,13h)或继续(XON,11h)发送。如果XON和XOFF字符出现在二进制数据流中,则发送方软件忽略它而由接收方软件打开。
RTS/CTS需要使用额外的信号线。RTS(请求发送)由发送方发出。如果接收准备就绪,接收方以CTS回应(清除发送),当其接收缓冲器满时就清除CTS。
有些设备支持流控制而有些不能。于是,默认设置常常为“没有流控制”,如果已知某个设备执行流控制,该设置将不起作用。
速度,数据位,停止位和奇偶位
为了通信成功,还必须设置发送速度(位速率),数据位数和停止位,以及奇偶校验类型(如果有的话)。大多数新设备采用一种“8N1”设置,代表8个数据位,无奇偶位,和一个停止位。然而,传统系统各种可能都有,因此,正确地进行设置还并非微不足道。
TINI和网络
TINI是Dallas Semiconductor开发的一种技术平台,目的是协助用户快速整合DS80C390和DS80C400网络微控制器到其目标应用中。TINI定义了一个芯片组,并包含一个嵌入式操作系统,其中整合了经过高度优化的Java运行环境。Java编程者可从其中获得一般的嵌人式开发中不多见的强大功能
吴康
本文介绍一种通过在TINI平台上建立一个应用层的有效简易方法,可将单独的串行设备迁移到以太网.并以应用实例作说明。
众所周知,当今难以计数的电子设备通过串口和其它设备通信。实际上,对于许多设备来讲,很多情况下,串行口是它们与外部世界通信的唯一渠道。例如自动调温器,销售点系统,远端监视器,条码阅读器,票据打印机,RFID(无线频率识别)收发器,血压计以及许许多多千差万别的现场设备,无论定是从传统的检测工具到最新的楼宇自动化等无不例外,但这些设备均没有直接参与用大型计算机网络的手段.而新的应用开发需要TCP/IP(传送控制协议/国际互连网协定)的连通性和以太网的通信能力。然而,昂贵的成本和耗时的设计常常又令人望而却步。怎么办?
本文介绍一种简易、经济的办法,通过在微型因网接口(Tiny InterNet Interfaces)TINI平台(该平台基于DS80C390或DS80C400微控制器实现)上建立一个应用层,可将单独的串行设备迁移到以太网。一旦将设备连接到以太网,TINl web服务,例如HTTP(超文本传送协议)服务器的实现便水到渠成。下面就该方法的几个方面作分折说明.
RS-232串口
本文所讨论的异步串行通信基于RS-232-C标准,可一直追溯到计算机历史的早期。RS-232-C发布于1969年。现在的大多数串行口不支持标准所规定的所有信号。此外,已实现的信号也只是以一种“相当接近”于标准的方式在使用。为此,将不考虑纯粹的历史定义,而只关注当前RS-232的使用方式。
空号和传号
RS—232—C规定“空号”(二进制0)为一个+3V至+25V的电平,“传号”(二进制1)为-3V至-25V。-3V和+3V之间的区域为“切换区”。很多通用异步收发器(UART)采用更现代的(相对来讲)TTL电平0V和+5V表示0和1。专用的电平转换器,例如著名的MAX232,可以实现TTL和RS—232电平的转换。因为DS80C390/DS80C400的串行口是TTL兼容的,因此在和其它TTL电平的UART接口时不必采用电平转换器。
DCE和DTE
数据通信设备(DCE)和数据终端设备(DTE)是一条通信信道的两个端点。它们之间的一个主要差别是串行连接器的插脚定义。通过一个所谓的空调制解调器可在它们两者之间进行转换。
表1列出DTE串行连接器DB-9上的信号定义,以及另外一个采用空调制解调器的DTE 上的对应信号。
流控制
串行通信时,你可以向一条芯线发送(TD)而从另外一条接收(RD)。然而,如果两个采用RD/TD通信的设备任意进行发送,其中一个有可能超速另一个而导致数据丢失。通常采用以下两种办法之一实现必要的流控制:
*XON/XOFF(常常简单地称为软件流控制)
*RTS/CTS(常常简单地称为硬件流控制)
XON/XOFF流控方式通过发送带内字符使另一侧暂停(XOFF,13h)或继续(XON,11h)发送。如果XON和XOFF字符出现在二进制数据流中,则发送方软件忽略它而由接收方软件打开。
RTS/CTS需要使用额外的信号线。RTS(请求发送)由发送方发出。如果接收准备就绪,接收方以CTS回应(清除发送),当其接收缓冲器满时就清除CTS。
有些设备支持流控制而有些不能。于是,默认设置常常为“没有流控制”,如果已知某个设备执行流控制,该设置将不起作用。
速度,数据位,停止位和奇偶位
为了通信成功,还必须设置发送速度(位速率),数据位数和停止位,以及奇偶校验类型(如果有的话)。大多数新设备采用一种“8N1”设置,代表8个数据位,无奇偶位,和一个停止位。然而,传统系统各种可能都有,因此,正确地进行设置还并非微不足道。
TINI和网络
TINI是Dallas Semiconductor开发的一种技术平台,目的是协助用户快速整合DS80C390和DS80C400网络微控制器到其目标应用中。TINI定义了一个芯片组,并包含一个嵌入式操作系统,其中整合了经过高度优化的Java运行环境。Java编程者可从其中获得一般的嵌人式开发中不多见的强大功能