串口扩展方案+简单自制电平转换电路

本科项目上需要DSP通过RS232串口连接四个设备,可供使用的芯片串口只有一个。

方案一:利用手头器件,简单利用FPGA和max232电平转换芯片采用片选方式设计

verilog代码如下:

module demultiplexer1to4 (out0,out1,out2,out3,in,s2,s1,s0);

output out0,out1,out2,out3;

input in;
input s0,s1,s2 ;
reg   out0,out1,out2,out3;

[email protected](s0 or s1 or s2 or in)
case({s2,s1,s0} )

    3‘b001: begin out0 <= in;   out1 <= 1‘bz; out2 <= 1‘bz; out3 <= 1‘bz;    end
    3‘b011: begin out0 <= 1‘bz; out1 <= in;   out2 <= 1‘bz; out3 <= 1‘bz;    end
    3‘b010: begin out0 <= 1‘bz; out1 <= 1‘bz; out2 <= in;   out3 <= 1‘bz;    end
    3‘b110: begin out0 <= 1‘bz; out1 <= 1‘bz; out2 <= 1‘bz; out3 <= in;      end
    3‘b111: begin out0 <= in;   out1 <= in;   out2 <= in;   out3 <= in;      end
    default: begin out0 <= 1‘bz; out1 <= 1‘bz; out2 <= 1‘bz;out3 <= 1‘bz;    end
endcase
endmodule

优势:可实现一对一发送和一对多发送;

缺点:需要器件、接线较多,不可靠。

出现问题:使用一段时间后,数据出现乱码,分析是采用劣质max232芯片所导致,改用网申的美信原装芯片,没有继续出现问题。但劣质max232芯片单独使用电平转换没有问题。

方案二、接着我开始寻找集成芯片用以替代方案一,然后找到了成都国腾微电子有限公司的GM8125一扩五串口芯片.原理图如下:

此芯片缺陷是不能够一对多发送数据,只能一对一,倒也能满足我使用需求。

经过了一个寒假回来,事情变的奇怪了,采用此转换芯片发送的第一组数据出现乱码,后续数据正常。

解决办法,上电后先发送一组无用数据,跳过乱码。当时因为时间关系没有继续查明原因。

简单自制转换电路(此电路不适用与全双工工作):

RS232高电平:   -3~ -15V

RS232低电平: +3~ +15V

RS232传输数据时空闲位为高电平,即-3~ -15V

发送数据时,USART_TXD(TTL或CMOS电平)为高电平,Q1截止,RS232_RXD电平为(0.7V(二极管压降)+RS232_TXD),因RS232_TXD空闲时为高电平,则RS232_RXD也为高电平。

USART_TXD(TTL或CMOS电平)为低电平,Q1导通,RS232_RXD电平近似为VCC,表现在RS232电平上为低电平。

接收数据时,RS232_TXD为高电平,Q2截止,USART_RXD近似为VCC,表现在TTL或CMOS电平上为高电平。

RS232_TXD为低电平,Q2导通,USART_RXD电平接近为0,为低电平。

时间: 2024-11-13 06:57:03

串口扩展方案+简单自制电平转换电路的相关文章

简单实用的双向电平转换电路(3.3v-5v)

当你使用3.3V的单片机的时候,电平转换就在所难免了,经常会遇到3.3转5V或者5V转3.3V的情况,这里介绍一个简单的电路,他可以实现两个电平的相互转换(注意是相互哦,双向的,不是单向的!).电路十分简单,仅由3个电阻加一个MOS管构成,电路图如下: 上图中,S1,S2为两个信号端,VCC_S1和VCC_S2为这两个信号的高电平电压.另外限制条件为:1,VCC_S1<=VCC_S2.2,S1的低电平门限大于0.7V左右(视NMOS内的二极管压降而定).3,Vgs<=VCC_S1.4,Vds&

三极管的电平转换及驱动电路分析

3.3V-5V电平转换电路 如上图.左端接3.3V CMOS电平,能够是STM32.FPGA等的IO口,右端输出为5V电平,实现3.3V到5V电平的转换. 如今来分析下各个电阻的作用(抓住的核心思路是三极管的Vbe导通时为恒定值0.7V左右): 假设没有R87,则当US_CH0的高电平直接加在三极管的BE上,>0.7V的电压要到哪里去呢? 假设没有R91.当US_CH0电平状态不确定时,默认是要Trig输出高电平还是低电平呢?因此R91起到固定电平的作用.同一时候.假设无R91,则仅仅要输入>

TTL和COMS电平匹配以及电平转换的方法

一.TTL TTL集成电路的主要型式为晶体管-晶体管逻辑门(transistor-transistor logic gate),TTL大部分都采用5V电源.1.输出高电平Uoh和输出低电平UolUoh≥2.4V,Uol≤0.4V2.输入高电平和输入低电平Uih≥2.0V,Uil≤0.8V二.CMOSCMOS电路是电压控制器件,输入电阻极大,对于干扰信号十分敏感,因此不用的输入端不应开路,接到地或者电源上.CMOS电路的优点是噪声容限较宽,静态功耗很小.1.输出高电平Uoh和输出低电平UolUoh

5V系统和3.3V系统电平转换

在设计一个带MCU或者ARM系统电路时候,经常遇见MCU的VCC是3.3V,但是外围电路需要5V.有时候是反过来.虽然现在MCU的IO都声称支持TTL电平,但是我们谁也不想将MCU的IO口直接接上5V,即使IO口先串联一个电阻,然后再接上5V,这样总是不放心,担心烧掉MCU,再说了,MCU声称IO口支持TTL电平,但是并不是所有的IO都是这样.反正有隐患.    解决方法就是电平转换.    具体的我只说我在实际项目中运用到的方法,而且在项目中运用比较方便的,其他的都不再说了.    第一种:利

常用电平转换方案

(1) 晶体管+上拉电阻法 就是一个双极型三极管或 MOSFET,C/D极接一个上拉电阻到正电源,输入电平很灵活,输出电平大致就是正电源电平. (2) OC/OD 器件+上拉电阻法 跟 1) 类似.适用于器件输出刚好为 OC/OD 的场合. (3) 74xHCT系列芯片升压 (3.3V→5V) 凡是输入与 5V TTL 电平兼容的 5V CMOS 器件都可以用作 3.3V→5V 电平转换. ——这是由于 3.3V CMOS 的电平刚好和5V TTL电平兼容(巧合),而 CMOS 的输出电平总是接

如何对TYPE-C转HDMI音视频转换电路选择合适的方案?安格AG9310和安格AG9311方案的区

如何对TYPE-C转HDMI音视频转换电路选择一款有效且合适的方案?针对这一命题,我们分别列出常用的两款方案AG9310和AG9311这两款方案,且这两款方案是Algoltek安格科技 在2019年针对USB TYPE-C扩展坞和USB TYPE-CUSB扩展器市场需求下,新开发的最具性价比的方案芯片.这两款产品分别通用于目前市场上,所有PC端.平板电脑.手机等所有含有USB TYPE-C接口的设备中,其兼容性和匹配度也是最优的. 首先我们分别针对AG9310和AG9311这两款方案做个简单的功

用分立元件实现串口通讯TTL/RS232电平转换

1.计算机串口通信的RS-232电平:用正负电压来表示逻辑状态.逻辑1= = -3V--15V,逻辑0=+3-+15V. 2.单片机串口通信的TTL电平:输出高电平>2.4V,输出低电平<0.4V.在室温下,一般输出高电平是3.5V,输出低电平 是0.2V.最小输入高电平和低电平:输入高电平>=2.0V,输入低电平<=0.8V,噪声容限是0.4V. 由于计算机的串口通信使用的是RS-232标准的电平协议而单片机的串口采用的是TTL电平,为了实现单片机与计算机之间的 通信就必须进行T

Arduino 电平转换 升压 OUTPUT驱动9V/12V元件

原因 网络上有不少怎么让Arduino的5V电平转换成3.3V电平,从而和工作在3.3V下的芯片相互沟通的教程.但是如果想驱动高于5V电压的芯片,就找不到教程了.因此今天我来介绍一种方式,能让Arduino的OUTPUT口驱动需要5-12V的INPUT的电子元件.下文以12V为例. 效果 能够达到单向(从Arduino到12V芯片)通信的目的 Arduino引脚输出的电平会被取反,即Arduino输出HIGH,芯片却收到LOW,反之亦然. 硬件准备 Arduino一个 开关型NPN三极管(805

常用电平转换、常用电平转换模块,终于不晕啦!

一.  单片机下载原理: 单片机的TXD.RXD是TTL电平,所以你得万变不离其宗的将其它信号转成TTL电平,只有这样给单片机下载程序才有可能成功! 其中CH340.PL2303等芯片是直接将USB信号转换为TTL电平或者TTL电平转换为USB信号,而MAX232等芯片是将TTL转换为RS232信号或者将RS232信号转换为TTL. MAX232:外围电路简单,但是占用pcb面积大,不美观 PL2303:水货多不稳定,外围电路复杂,成本低 CH340:稳定,外围电路简单,成本相对高 二.计算机和