基于C8051F020的通用串口适配器的设计与实现
发布时间:2008/5/27 0:00:00 访问次数:824
    
     王晓宁,谭业双,吕洪斌,李菲菲
    
    1 引言
    
    串行通信的广泛应用可使各种传输设备有机地连成一体,能够安全可靠地进行数据交换和信息传递。但是由于各个设备传输信道上的信号不同,所应用的串口也各种各样,要完成众多设备相互之间的通信,就必然要涉及到各个设备之间的串口转换问题。
    
    为了使计算机的rs-232接口与各种不同的串口进行通信,从而测试或控制不同设备的工作状态,本文设计了一种通用串口适配器,适配器有4个对外接口,其中,1口连接控制计算机,2、3、4口连接不同标准串口的通信设备,如图1所示。
    
    
    2 硬件设计
    
    为了实现对适配器的自动控制以及扩展其他接口,采用了c8051f020单片机。适配器选用了c8051f020微处理器、max4534电子模拟开关、max232电平转换器以及rs-485/rs-422信号转换器max491等。
    
    
    整个系统以c8051f020为核心,原理框图如图2所示。通过串口1控制从上位机串口发送的数据的接收、存储和判别,然后通过串口2控制电子模拟开关,使其内部的模拟开关接通相应的串口,最后实现计算机与各个串口的通信。
    
    2.1 与上位机通信电路
    
    c8051f020引脚的信号电平为ttl类型,而pc机串口的异步串行通信基于rs-232标准。两者通信信号的逻辑电平不一致,必须进行信号电平转换。因此,选用maxim公司的max232实现ttl电平与rs-232电平的双向转换。
    
    max232包含两路接收和驱动器,适用于各种eia-232c和v.28/v.24的通信接口。该器件内置一个电源电压转换器,可将5 v电压转换成rs-232c输出电平所需的±10 v电压。所以,采用此器件的串行通信系统只需单一的+5 v电源。
    
    
    串口通信的rs-232通信距离以不超过12 m为宜。接口采用9针串口db9,串口传输数据只要有接收数据引脚和发送引脚就可实现。 2.2 模拟开关控制电路该控制电路主要由max4534(一对四)完成。地址端a0和a1与单片机i/o端口相连,开关1、2、3、4分别与各测试设备的串口相连,max4534的内部连接逻辑如图3所示。
    
    当上位机实现与单片机的握手后,若与rs-422口通信。则需先发送一个检测信号test,该信号经max232电平转换后,送至单片机c8051f020,单片机接收到信号后,通过其i/o端口p6.0和p6.1的输出状态分别控制开关max4534的地址端a0和a1。若a0和a1均为0,则接通开关no1,如表1所示,使检测电路的max491接收端处于导通状态,从而形成通路。此时单片机回发一个通路信号给上位机,当上位机接收到通路信号后,mcu的串口txd端就可自由发送数据,从设备发来的回应信号也可以被mcu正常接收,从而完成整个通信过程。
    
    
    2.3 rs-232(ttl电平)接口电路设计
    
    因为从单片机引脚出来的信号为ttl电平,所以ttl电平的rs-232接口无需进行电平转换,可以直接通过模拟开关max4534与串口相连。
    
    对于五线rs-232接口,由于c8051f020串口只有两根线连接rxd和txd,rts和cts通过其两个i/o口实现。
    
    
    2.4 rs-422接口的转换电路设计
    
    rs-232串行接口属于个人计算机(pc)及电信应用领域中最为成功的串行数据标准;而rs-422串行接口则是工业应用领域中最为成功的串行数据标准。上述这些数据标准并不直接相互兼容。rs-422标准全称为"平衡电压数字接口电路的电气特性",它定义了接口电路的特性,与rs-232不同,rs-422数据信号采用差分传输方式,也称作平衡传输,它使用一对儿双绞线,将其中一条线路定义为a,另一条线路定义为b。通常情况下,发送驱动器a、b之间的正电平为+2 v~+6 v,是一个逻辑状态;负电平为-2 v~-6 v。rs-422的最大传输距离为4000英尺(约1 219 m),最大传输速率为10 mb/s,最多可接10个
    
     王晓宁,谭业双,吕洪斌,李菲菲
    
    1 引言
    
    串行通信的广泛应用可使各种传输设备有机地连成一体,能够安全可靠地进行数据交换和信息传递。但是由于各个设备传输信道上的信号不同,所应用的串口也各种各样,要完成众多设备相互之间的通信,就必然要涉及到各个设备之间的串口转换问题。
    
    为了使计算机的rs-232接口与各种不同的串口进行通信,从而测试或控制不同设备的工作状态,本文设计了一种通用串口适配器,适配器有4个对外接口,其中,1口连接控制计算机,2、3、4口连接不同标准串口的通信设备,如图1所示。
    
    
    2 硬件设计
    
    为了实现对适配器的自动控制以及扩展其他接口,采用了c8051f020单片机。适配器选用了c8051f020微处理器、max4534电子模拟开关、max232电平转换器以及rs-485/rs-422信号转换器max491等。
    
    
    整个系统以c8051f020为核心,原理框图如图2所示。通过串口1控制从上位机串口发送的数据的接收、存储和判别,然后通过串口2控制电子模拟开关,使其内部的模拟开关接通相应的串口,最后实现计算机与各个串口的通信。
    
    2.1 与上位机通信电路
    
    c8051f020引脚的信号电平为ttl类型,而pc机串口的异步串行通信基于rs-232标准。两者通信信号的逻辑电平不一致,必须进行信号电平转换。因此,选用maxim公司的max232实现ttl电平与rs-232电平的双向转换。
    
    max232包含两路接收和驱动器,适用于各种eia-232c和v.28/v.24的通信接口。该器件内置一个电源电压转换器,可将5 v电压转换成rs-232c输出电平所需的±10 v电压。所以,采用此器件的串行通信系统只需单一的+5 v电源。
    
    
    串口通信的rs-232通信距离以不超过12 m为宜。接口采用9针串口db9,串口传输数据只要有接收数据引脚和发送引脚就可实现。 2.2 模拟开关控制电路该控制电路主要由max4534(一对四)完成。地址端a0和a1与单片机i/o端口相连,开关1、2、3、4分别与各测试设备的串口相连,max4534的内部连接逻辑如图3所示。
    
    当上位机实现与单片机的握手后,若与rs-422口通信。则需先发送一个检测信号test,该信号经max232电平转换后,送至单片机c8051f020,单片机接收到信号后,通过其i/o端口p6.0和p6.1的输出状态分别控制开关max4534的地址端a0和a1。若a0和a1均为0,则接通开关no1,如表1所示,使检测电路的max491接收端处于导通状态,从而形成通路。此时单片机回发一个通路信号给上位机,当上位机接收到通路信号后,mcu的串口txd端就可自由发送数据,从设备发来的回应信号也可以被mcu正常接收,从而完成整个通信过程。
    
    
    2.3 rs-232(ttl电平)接口电路设计
    
    因为从单片机引脚出来的信号为ttl电平,所以ttl电平的rs-232接口无需进行电平转换,可以直接通过模拟开关max4534与串口相连。
    
    对于五线rs-232接口,由于c8051f020串口只有两根线连接rxd和txd,rts和cts通过其两个i/o口实现。
    
    
    2.4 rs-422接口的转换电路设计
    
    rs-232串行接口属于个人计算机(pc)及电信应用领域中最为成功的串行数据标准;而rs-422串行接口则是工业应用领域中最为成功的串行数据标准。上述这些数据标准并不直接相互兼容。rs-422标准全称为"平衡电压数字接口电路的电气特性",它定义了接口电路的特性,与rs-232不同,rs-422数据信号采用差分传输方式,也称作平衡传输,它使用一对儿双绞线,将其中一条线路定义为a,另一条线路定义为b。通常情况下,发送驱动器a、b之间的正电平为+2 v~+6 v,是一个逻辑状态;负电平为-2 v~-6 v。rs-422的最大传输距离为4000英尺(约1 219 m),最大传输速率为10 mb/s,最多可接10个