`“软件定义”( Software Design)近年来是一个时髦的词汇,比如“软件定义网络”、“软件定义存储”,本质上就是硬件不变的情况下通过改写软件而实现不同的功能。波仕电子作为一家RS-232/485串口全面解决方案的提供商,最近也推出了系列软件定义的串口转换器产品。本文以波仕的串口地址转换器DIZ485、串口波特率转换器BTL232、带缓存串口转换器为例来介绍如何实现软件定义的串口转换器。 DIZ485与BTL232以及带缓存转换器具有完全相同的硬件以及外形,但是却是完全不同功能的串口转换器。比如DIZ485是地址转换器,BTL232是波特率转换器。波仕通过对内部的芯片灌入不同的软件来实现这几种不同的功能,既降低了成本,又提高了通用性。波仕还通过软件定义威廉希尔官方网站
为特定客户提供了特殊波特率格式的BTL232产品,无需重新设计和生产产品而仅仅是重新灌入软件即可。 软件定义的串口转换器在硬件设计时必须考虑到:1、串口的通用性,至少带RS-232和RS-485两种口,最好还带RS-422; 2、核心芯片的性能足够强,这往往意味着具有多种不同的功能,比如 通信、存储、I/O接口功能; 3、核心芯片引脚通用性好。不同的软件定义转换器也许用到芯片管脚的不同功能,所以引脚最好的输入/输出/通信功能通用。 软件定义的串口地址转换器
DIZ485地址串口转换器用于实现串口(同时支持RS-232和RS-485)之间的带地址的转换。通过跳线设置地址编码,DIZ485可以将串口接收到的数据附加上地址编码发送出去,也可以将带地址编码的串口数据送到对应地址的转换器的串口。DIZ485与其它同类产品相比的特点是可以识别下位机的地址、下位机可以主动发送带地址的数据。DIZ485地址串口转换器的外形为DB-9/DB-9转接盒大小,如图,产品左边为主串口,包括DB-9孔的RS-232口,和标明为A1、B1的RS-485口。右边为从串口,包括DB-9针的RS-232口,和标明为A2、B2的RS-485口。左上侧J2、J1、J0为波特率设置的跳线(1200~115200),右上侧K2、K1、K0为地址编码设置的跳线(0~7),DIZ485通过跳线J2、J1、J0设置波特率,通过跳线K2、K1、K0设置地址。 通信规则:主串口发送的数据=地址码+从串口接收的数据; 或者:从串口发送的数据=主串口接收的数据—地址码。如果地址为1的产品的从串口收到abcdefg ,则主串口发送出###1:abcdefg 就是加帧头。 软件定义的串口波特率转换器 BTL232型串口波特率转换器用于实现不同波特率的RS-232/RS-485串口之间的通信转换,同时支持RS-232和RS-485口。BTL232的外形为DB-9/DB-9转接盒大小,如图的产品左边为DB-9孔的1号RS-232口,左下面为A1、B1的1号RS-485口;右边为DB-9针的2号RS-232口,右下面为A2、B2的2号RS-485口。产品上边为波特率设置的跳线,左边的J2、J1、J0用于设置左边1号RS-232和RS-485串口的波特率(1200~115200);右边的K2、K1、K0用于设置右边2号RS-232和RS-485串口的波特率(1200~115200)。既然是软件定义的产品,所以转换特殊波特率以及格式也是完全没问题的。 软件定义的带缓存的串口转换器 BTL232还可以实现带缓存的RS-232与RS-485转换器这个功能。BTL232本来是一种RS-232/RS-485波特率转换器,内部带大约1K缓存,缓存数据本来是立即提取出来并且传输出去的。把BTL232的一边用RS-232(接上位机),另外一边用RS-485(接下位机),两边的波特率设为一样,而1K的缓存数据在转换器内部先缓存一段时间并且处理再提取出来进行传输,这样就实现了带缓存的RS-232/RS-485转换器功能。缓存一段时间的好处在于:1、避开可能出现的干扰期间 2、实现上位机RS-232对下位机RS-485的安全控制,比如在缓存期间进行延时并且处理可以避免恶意代码。
`
|