精华内容
下载资源
问答
  • 物理层(1)RS-232 标准 一、串口通讯协议 1.简介 串口通讯(Serial Communication)是一种设备间非常常用的串行通讯方式,因为它简单、便捷,因此大部分电子设备都支持该通讯方式,电子工程师在调试设备时也经常...

    一、串口通讯协议

    1.简介

    • 串口通讯(Serial Communication)是一种设备间非常常用的串行通讯方式,因为它简单、便捷,因此大部分电子设备都支持该通讯方式,电子工程师在调试设备时也经常使用该通 讯方式输出调试信息。
    • 在计算机科学里,大部分复杂的问题都可以通过分层来简化。如芯片被分为内核层和片上外设;STM32
    • 标准库则是在寄存器与用户代码之间的软件层。对于通讯协议,我们也以分层的方式来理解,最基本的是把它分为物理层和协议层。
    名称组成作用
    物理层具有机械、电子功能部分的特性,确保原始数据在物理媒体的传输
    协议层规定通讯逻辑,统一收发双方的数据打包、解包标准。
    • 在串口通讯的物理层有很多标准及变种,下面主要讲解 RS-232 标准

    2.RS-232 标准

    • RS-232 标准主要规定了信号的用途,通讯接口以及信号的电平标准

    RS-232 标准的串口设备间常见的通讯结构:
    在这里插入图片描述
    由图可知两个通讯设备通过DB9接口相连,并使用RS-232标准进行信号的传输。

    • 那为什么需要电平转换芯片呢?

    原因很简单,因为控制器无法直接识别RS-232电平标准的信号,因此信号只能通过“电平转换芯片”转换成控制器能识别的“TTL 标准”的电平信号。接下来就介绍一下“RS232标准”的电平与“TTL标准”的电平有什么区别

    (1)RS232电平与TTL电平的区别

    • 根据通讯使用的电平标准不同,串口通讯可分为 TTL标准和 RS-232标准
    标准名称逻辑1逻辑0
    TLL2.4V~5V0~0.5V
    RS-232-15V~3V+3V~+15V

    从表格中不难看出,两种标准划分的逻辑电压不同。在电子电路中常使用 TTL 的电平标准,理想状态下,使用 5V 表示二进制逻辑 1,使用 0V 表示逻辑 0;而为了增加串口通讯的远距离传输及抗干扰能力,它使用-15V表示逻辑 1,+15V 表示逻辑 0

    • 下图为用RS232与TTL电平校准表示同一个信号时的对比
      在这里插入图片描述

    (2)RS-232 信号线

    • RS-232 串口标准常用于计算机、路由与调制调(MODEN,俗称“猫”)之间的通讯 ,在这种通讯系统中,设备被分为数据终端设备DTE(计算机、路由)和数据通讯设备 DCE(调制调解器)
    • 台式计算机中一般会有 RS-232 标准的 COM 口(也称 DB9 接口)其中接线口以针式引出信号线的称为公头,以孔式引出信号线的称为母头。在计算机中一般引出公头接口,而在调制调解器设备中引出的一般为母头,使用上图中的串口线即可把它与计算机连接起来。通讯时,串口线中传输的信号就是使用前面讲解的 RS-232 标准调制的。
      在这里插入图片描述
    • 下面介绍各个接口的名称和基本作用
    名称符号数据方向说明
    载波检测DCDDTE→DCE用于DTE 告知对方,本机是否收到对方的载波信号
    接收数据RXDDTE←DCE数据接收信号,即输入
    发送数据TXDDTE→DCE数据发送信号,即输出
    数据终端DTRDTE→DCE用于DTE 向对方告知本机是否已准备好
    信号地GND地线,两个通讯设备之间的地电位可能不一样,这会影响收发双方的电平信号,所以两个串口设备之间必须要使用地线连接,即共地
    数据设备DSRDTE←DCE用于 DCE告知对方本机是否处于待命状态
    请求发送RTSDTE→DCEDTE 请求DCE 本设备向 DCE 端发送数据
    允许发送CTSDTE←DCEDCE 回应对方的RTS 发送请求,告知对方是否可以发送数据
    响铃指示RIDTE←DCE表示 DCE 端与线路已接通

    注意:两个设备之间的 TXD 与 RXD 应交叉相连
    在这里插入图片描述

    二、USB转串口

    1.基本工作原理

    USB转串口即实现计算机USB接口到物理串口之间的转换。可以为没有串口的计算机或其他USB主机增加串口,使用USB转串口设备等于将传统的串口设备变成了即插即用的USB设备。

    USB主机检测到USB转串口设备插入后,首先会对设备复位,然后开始USB枚举过程。USB枚举时过程会获取设备描述符、配置描述符、接口描述符等。描述符中会包含USB设备的厂商ID,设备ID和Class类别等信息。操作系统会根据该信息为设备匹配相应的USB设备驱动。

    USB虚拟串口的实现在系统上依赖于USB转串口驱动,一般由厂家直接提供,也可以使用操作系统自带的CDC类串口驱动等。驱动主要分为2个功能,其一注册USB设备驱动,完成对USB设备的控制与数据通讯,其二注册串口驱动,为串口应用层提供相应的实现方法。

    串口收发对应的驱动数据流向一览:

    发生or接收数据流向
    串口发送串口应用发送数据→USB串口驱动获取数据→驱动将数据经过USB通道发送给USB串口设备→USB串口设备接收到数据通过串口发送
    串口接收USB串口设备接收串口数据→将串口数据经过USB打包后上传给USB主机→USB串口驱动获取到通过USB上传的串口数据→驱动将数据保存在串口缓冲区提供给串口应用读取

    2.CH340模块介绍

    • 实物图
      在这里插入图片描述
    • 内部结构图
      在这里插入图片描述
      注意:RXD接收端子接外部TX发送端,TXD发送端子接外部RX接收端

    三、实例

    1.实例描述

    完成一个STM32的USART串口通讯程序(查询方式即可,暂不要求采用中断方式),要求:

    • 设置波特率为115200,1位停止位,无校验位;

    • STM32系统给上位机(win10)连续发送“hello windows!”。win10采用“串口助手”工具接收。

    2.实例流程

    (1)创建工程

    • 打开KEIL5 创建一个新项目工程,右击source,添加一个新的文件
      在这里插入图片描述
    • 因为是汇编语言,所以选择创建Asm文件
      在这里插入图片描述
    • 创建完成
      在这里插入图片描述

    (2)代码部分

    代码:

    ;RCC寄存器地址映像             
    RCC_BASE            EQU    0x40021000 
    RCC_CR              EQU    (RCC_BASE + 0x00) 
    RCC_CFGR            EQU    (RCC_BASE + 0x04) 
    RCC_CIR             EQU    (RCC_BASE + 0x08) 
    RCC_APB2RSTR        EQU    (RCC_BASE + 0x0C) 
    RCC_APB1RSTR        EQU    (RCC_BASE + 0x10) 
    RCC_AHBENR          EQU    (RCC_BASE + 0x14) 
    RCC_APB2ENR         EQU    (RCC_BASE + 0x18) 
    RCC_APB1ENR         EQU    (RCC_BASE + 0x1C) 
    RCC_BDCR            EQU    (RCC_BASE + 0x20) 
    RCC_CSR             EQU    (RCC_BASE + 0x24) 
                                  
    ;AFIO寄存器地址映像            
    AFIO_BASE           EQU    0x40010000 
    AFIO_EVCR           EQU    (AFIO_BASE + 0x00) 
    AFIO_MAPR           EQU    (AFIO_BASE + 0x04) 
    AFIO_EXTICR1        EQU    (AFIO_BASE + 0x08) 
    AFIO_EXTICR2        EQU    (AFIO_BASE + 0x0C) 
    AFIO_EXTICR3        EQU    (AFIO_BASE + 0x10) 
    AFIO_EXTICR4        EQU    (AFIO_BASE + 0x14) 
                                                               
    ;GPIOA寄存器地址映像              
    GPIOA_BASE          EQU    0x40010800 
    GPIOA_CRL           EQU    (GPIOA_BASE + 0x00) 
    GPIOA_CRH           EQU    (GPIOA_BASE + 0x04) 
    GPIOA_IDR           EQU    (GPIOA_BASE + 0x08) 
    GPIOA_ODR           EQU    (GPIOA_BASE + 0x0C) 
    GPIOA_BSRR          EQU    (GPIOA_BASE + 0x10) 
    GPIOA_BRR           EQU    (GPIOA_BASE + 0x14) 
    GPIOA_LCKR          EQU    (GPIOA_BASE + 0x18) 
                                                           
    ;GPIO C口控制                   
    GPIOC_BASE          EQU    0x40011000 
    GPIOC_CRL           EQU    (GPIOC_BASE + 0x00) 
    GPIOC_CRH           EQU    (GPIOC_BASE + 0x04) 
    GPIOC_IDR           EQU    (GPIOC_BASE + 0x08) 
    GPIOC_ODR           EQU    (GPIOC_BASE + 0x0C) 
    GPIOC_BSRR          EQU    (GPIOC_BASE + 0x10) 
    GPIOC_BRR           EQU    (GPIOC_BASE + 0x14) 
    GPIOC_LCKR          EQU    (GPIOC_BASE + 0x18) 
                                                               
    ;串口1控制                       
    USART1_BASE         EQU    0x40013800 
    USART1_SR           EQU    (USART1_BASE + 0x00) 
    USART1_DR           EQU    (USART1_BASE + 0x04) 
    USART1_BRR          EQU    (USART1_BASE + 0x08) 
    USART1_CR1          EQU    (USART1_BASE + 0x0c) 
    USART1_CR2          EQU    (USART1_BASE + 0x10) 
    USART1_CR3          EQU    (USART1_BASE + 0x14) 
    USART1_GTPR         EQU    (USART1_BASE + 0x18) 
                                
    ;NVIC寄存器地址                
    NVIC_BASE           EQU    0xE000E000 
    NVIC_SETEN          EQU    (NVIC_BASE + 0x0010)     
    ;SETENA寄存器阵列的起始地址 
    NVIC_IRQPRI         EQU    (NVIC_BASE + 0x0400)     
    ;中断优先级寄存器阵列的起始地址 
    NVIC_VECTTBL        EQU    (NVIC_BASE + 0x0D08)     
    ;向量表偏移寄存器的地址     
    NVIC_AIRCR          EQU    (NVIC_BASE + 0x0D0C)     
    ;应用程序中断及复位控制寄存器的地址                                                
    SETENA0             EQU    0xE000E100 
    SETENA1             EQU    0xE000E104 
                                
                                  
    ;SysTick寄存器地址            
    SysTick_BASE        EQU    0xE000E010 
    SYSTICKCSR          EQU    (SysTick_BASE + 0x00) 
    SYSTICKRVR          EQU    (SysTick_BASE + 0x04) 
                                  
    ;FLASH缓冲寄存器地址映像     
    FLASH_ACR           EQU    0x40022000 
                                 
    ;SCB_BASE           EQU    (SCS_BASE + 0x0D00) 
                                 
    MSP_TOP             EQU    0x20005000               
    ;主堆栈起始值                
    PSP_TOP             EQU    0x20004E00               
    ;进程堆栈起始值             
                                
    BitAlias_BASE       EQU    0x22000000               
    ;位带别名区起始地址         
    Flag1               EQU    0x20000200 
    b_flas              EQU    (BitAlias_BASE + (0x200*32) + (0*4))               
    ;位地址 
    b_05s               EQU    (BitAlias_BASE + (0x200*32) + (1*4))               
    ;位地址 
    DlyI                EQU    0x20000204 
    DlyJ                EQU    0x20000208 
    DlyK                EQU    0x2000020C 
    SysTim              EQU    0x20000210 
     
     
    ;常数定义 
    Bit0                EQU    0x00000001 
    Bit1                EQU    0x00000002 
    Bit2                EQU    0x00000004 
    Bit3                EQU    0x00000008 
    Bit4                EQU    0x00000010 
    Bit5                EQU    0x00000020 
    Bit6                EQU    0x00000040 
    Bit7                EQU    0x00000080 
    Bit8                EQU    0x00000100 
    Bit9                EQU    0x00000200 
    Bit10               EQU    0x00000400 
    Bit11               EQU    0x00000800 
    Bit12               EQU    0x00001000 
    Bit13               EQU    0x00002000 
    Bit14               EQU    0x00004000 
    Bit15               EQU    0x00008000 
    Bit16               EQU    0x00010000 
    Bit17               EQU    0x00020000 
    Bit18               EQU    0x00040000 
    Bit19               EQU    0x00080000 
    Bit20               EQU    0x00100000 
    Bit21               EQU    0x00200000 
    Bit22               EQU    0x00400000 
    Bit23               EQU    0x00800000 
    Bit24               EQU    0x01000000 
    Bit25               EQU    0x02000000 
    Bit26               EQU    0x04000000 
    Bit27               EQU    0x08000000 
    Bit28               EQU    0x10000000 
    Bit29               EQU    0x20000000 
    Bit30               EQU    0x40000000 
    Bit31               EQU    0x80000000 
     
     
    ;向量表 
        AREA RESET, DATA, READONLY 
        DCD    MSP_TOP            ;初始化主堆栈 
        DCD    Start              ;复位向量 
        DCD    NMI_Handler        ;NMI Handler 
        DCD    HardFault_Handler  ;Hard Fault Handler 
        DCD    0                   
        DCD    0 
        DCD    0 
        DCD    0 
        DCD    0 
        DCD    0 
        DCD    0 
        DCD    0 
        DCD    0 
        DCD    0 
        DCD    0 
        DCD    SysTick_Handler    ;SysTick Handler 
        SPACE  20                 ;预留空间20字节 
     
     
     
     
     
     
     
     
                     
    ;代码段 
        AREA |.text|, CODE, READONLY 
        ;主程序开始 
        ENTRY                            
        ;指示程序从这里开始执行 
    Start 
        ;时钟系统设置 
        ldr    r0, =RCC_CR 
        ldr    r1, [r0] 
        orr    r1, #Bit16 
        str    r1, [r0] 
        ;开启外部晶振使能  
        ;启动外部8M晶振 
                                                
    ClkOk           
        ldr    r1, [r0] 
        ands   r1, #Bit17 
        beq    ClkOk 
        ;等待外部晶振就绪 
        ldr    r1,[r0] 
        orr    r1,#Bit17 
        str    r1,[r0] 
        ;FLASH缓冲器 
        ldr    r0, =FLASH_ACR 
        mov    r1, #0x00000032 
        str    r1, [r0] 
                
        ;设置PLL锁相环倍率为7,HSE输入不分频 
        ldr    r0, =RCC_CFGR 
        ldr    r1, [r0] 
        orr    r1, #(Bit18 :OR: Bit19 :OR: Bit20 :OR: Bit16 :OR: Bit14) 
        orr    r1, #Bit10 
        str    r1, [r0] 
        ;启动PLL锁相环 
        ldr    r0, =RCC_CR 
        ldr    r1, [r0] 
        orr    r1, #Bit24 
        str    r1, [r0] 
    PllOk 
        ldr    r1, [r0] 
        ands   r1, #Bit25 
        beq    PllOk 
        ;选择PLL时钟作为系统时钟 
        ldr    r0, =RCC_CFGR 
        ldr    r1, [r0] 
        orr    r1, #(Bit18 :OR: Bit19 :OR: Bit20 :OR: Bit16 :OR: Bit14) 
        orr    r1, #Bit10 
        orr    r1, #Bit1 
        str    r1, [r0] 
        ;其它RCC相关设置 
        ldr    r0, =RCC_APB2ENR 
        mov    r1, #(Bit14 :OR: Bit4 :OR: Bit2) 
        str    r1, [r0]      
     
     
        ;IO端口设置 
        ldr    r0, =GPIOC_CRL 
        ldr    r1, [r0] 
        orr    r1, #(Bit28 :OR: Bit29)          
        ;PC.7输出模式,最大速度50MHz  
        and    r1, #(~Bit30 & ~Bit31)   
        ;PC.7通用推挽输出模式 
        str    r1, [r0] 
                
        ;PA9串口0发射脚 
        ldr    r0, =GPIOA_CRH 
        ldr    r1, [r0] 
        orr    r1, #(Bit4 :OR: Bit5)          
        ;PA.9输出模式,最大速度50MHz  
        orr    r1, #Bit7 
        and    r1, #~Bit6 
        ;10:复用功能推挽输出模式 
        str    r1, [r0]    
     
     
        ldr    r0, =USART1_BRR   
        mov    r1, #0x271 
        str    r1, [r0] 
        ;配置波特率-> 115200 
                       
        ldr    r0, =USART1_CR1   
        mov    r1, #0x200c 
        str    r1, [r0] 
        ;USART模块总使能 发送与接收使能 
        ;71 02 00 00   2c 20 00 00 
                 
        ;AFIO 参数设置             
        ;Systick 参数设置 
        ldr    r0, =SYSTICKRVR           
        ;Systick装初值 
        mov    r1, #9000 
        str    r1, [r0] 
        ldr    r0, =SYSTICKCSR           
        ;设定,启动Systick 
        mov    r1, #0x03 
        str    r1, [r0] 
                
        ;NVIC                     
        ;ldr   r0, =SETENA0 
        ;mov   r1, 0x00800000 
        ;str   r1, [r0] 
        ;ldr   r0, =SETENA1 
        ;mov   r1, #0x00000100 
        ;str   r1, [r0] 
                  
        ;切换成用户级线程序模式 
        ldr    r0, =PSP_TOP                   
        ;初始化线程堆栈 
        msr    psp, r0 
        mov    r0, #3 
        msr    control, r0 
                  
        ;初始化SRAM寄存器 
        mov    r1, #0 
        ldr    r0, =Flag1 
        str    r1, [r0] 
        ldr    r0, =DlyI 
        str    r1, [r0] 
        ldr    r0, =DlyJ 
        str    r1, [r0] 
        ldr    r0, =DlyK 
        str    r1, [r0] 
        ldr    r0, =SysTim 
        str    r1, [r0] 
                   
    ;主循环            
    main            
        ldr    r0, =Flag1 
        ldr    r1, [r0] 
        tst    r1, #Bit1                 
        ;SysTick产生0.5s,置位bit 1 
        beq    main                  ;0.5s标志还没有置位       
         
        ;0.5s标志已经置位 
        ldr    r0, =b_05s                
        ;位带操作清零0.5s标志 
        mov    r1, #0 
        str    r1, [r0] 
        bl     LedFlas 
     
     
        mov    r0, #'H' 
        bl     send_a_char
    	
    	mov    r0, #'e' 
        bl     send_a_char
    	
    	mov    r0, #'l' 
        bl     send_a_char
    	
    	mov    r0, #'l' 
        bl     send_a_char
    	
    	mov    r0, #'o' 
        bl     send_a_char
    	
    	mov    r0, #' ' 
        bl     send_a_char
    	
    	mov    r0, #'w' 
        bl     send_a_char
    	
    	mov    r0, #'o' 
        bl     send_a_char
    	
    	mov    r0, #'r' 
        bl     send_a_char
    	
    	mov    r0, #'l' 
        bl     send_a_char
    	
    	mov    r0, #'d' 
        bl     send_a_char
    	
    	mov    r0, #'\n' 
        bl     send_a_char
    	
    	b      main
                
                  
                
    ;子程序 串口1发送一个字符 
    send_a_char 
        push   {r0 - r3} 
        ldr    r2, =USART1_DR   
        str    r0, [r2] 
    b1 
        ldr    r2, =USART1_SR  
        ldr    r2, [r2] 
        tst    r2, #0x40 
        beq    b1 
        ;发送完成(Transmission complete)等待 
        pop    {r0 - r3} 
        bx     lr 
     
     
                     
    ;子程序 led闪烁 
    LedFlas      
        push   {r0 - r3} 
        ldr    r0, =Flag1 
        ldr    r1, [r0] 
        tst    r1, #Bit0 
        ;bit0 闪烁标志位 
        beq    ONLED        ;0 打开led灯 
        ;1 关闭led灯 
        ldr    r0, =b_flas 
        mov    r1, #0 
        str    r1, [r0] 
        ;闪烁标志位置为0,下一状态为打开灯 
        ;PC.7输出0 
        ldr    r0, =GPIOC_BRR 
        ldr    r1, [r0] 
        orr    r1, #Bit7 
        str    r1, [r0] 
        b      LedEx 
    ONLED       
        ;0 打开led灯 
        ldr    r0, =b_flas 
        mov    r1, #1 
        str    r1, [r0] 
        ;闪烁标志位置为1,下一状态为关闭灯 
        ;PC.7输出1 
        ldr    r0, =GPIOC_BSRR 
        ldr    r1, [r0] 
        orr    r1, #Bit7 
        str    r1, [r0] 
    LedEx        
        pop    {r0 - r3} 
        bx     lr 
                                    
    ;异常程序 
    NMI_Handler 
        bx     lr 
     
     
    HardFault_Handler 
        bx     lr 
                  
    SysTick_Handler 
        ldr    r0, =SysTim 
        ldr    r1, [r0] 
        add    r1, #1 
        str    r1, [r0] 
        cmp    r1, #500 
        bcc    TickExit 
        mov    r1, #0 
        str    r1, [r0] 
        ldr    r0, =b_05s  
        ;大于等于500次 清零时钟滴答计数器 设置0.5s标志位 
        ;位带操作置1 
        mov    r1, #1 
        str    r1, [r0] 
    TickExit    
        bx     lr 
                                                                               
        ALIGN            
        ;通过用零或空指令NOP填充,来使当前位置与一个指定的边界对齐 
        END
    
    • 编译没有出错
      在这里插入图片描述

    (3)烧录程序

    在这里插入图片描述

    • 下载成功
      在这里插入图片描述

    (4)串口调试

    • 下面打开上位机,串口通信助手,我用的是SSCOM,点击打开左上角通信端口选择CH340
      在这里插入图片描述
    • 点击打开串口
      在这里插入图片描述

    3.结果显示

    显示接收到Hello world,成功!
    在这里插入图片描述

    四、总结

    本篇博客介绍了STM32F103单片机的串口协议,介绍了RS-232 标准,解释了RSS-232转为TLL的原因以及其原理,并用两者的电平做了对比。阐述了USB转接串口基本原理,并以CH340模块为案例介绍,并通过串口向上位机输入Hello World,将理论的学习运用到实践中,希望能够给各位读者帮助,同时也希望各位读者能够自己尝试去实验,只有通过实验才能够真正熟知和掌握知识。若博客中有不足或者缺漏,望各位指出

    五、参考文献

    USB转串口CH340接线方法
    USB转串口原理及应用
    基于 MDK 创建 STM32 汇编程序:串口输出 Hello world

    展开全文
  • TTL转RS232电路

    2021-01-19 22:39:15
    RS232串口经常用到,本文分享下RS232协议方面基本点,并介绍一种简单的串口TTL(3.3V)电平转换为RS232电平的电路,这个电路是经过制板验证过的。 分享的电路使用芯片MAX3232E (tssop16封装),电源用3.3V,电路...

    RS232串口经常用到,本文分享下RS232协议方面基本点,并介绍一种简单的串口TTL(3.3V)电平转换为RS232电平的电路,这个电路是经过制板验证过的。

        分享的电路使用芯片MAX3232E (tssop16封装),电源用3.3V,电路如下图

    图片

        MAX3232是支持两路uart转成RS232,分享的电路只接了一路,如有需要可以接两路。

        另外上面电路是没有做隔离的,如果要做成隔离式的,可以加上光电开关。

     

     

    下面将原理图,规格书,PCB封装(cadence)资料分享如下,欢迎下载:

     

     

    链接:https://pan.baidu.com/s/1SvP10K-TRhMz4dWfnr2F8Q 

    提取码:nrlh 

     

     

     

    图片

     

    RS232相关知识点:

    图片

    图片

    通信速率:

        在通信速率低于20kb/s时,RS-232C所直接连接的最大物理距离为15m(50英尺)

     

    电气特性:

        EIA-RS-232C 对电器特性、逻辑电平和各种信号线功能都作了规定。

        在 TxD 和 RxD 上(负逻辑:负电平为1,正电平为0):

            逻辑 1(MARK)=-3V~-15V 

            逻辑 0(SPACE)=+3~+15V

        在 RTS、CTS、DSR、DTR 和 DCD 等控制线上:

            信号有效(接通,ON 状态,正电压)=+3V~+15V

            信号无效(断开,OFF 状态,负电压)=-3V~-15V

    图片

       

     远距离通信一般要加调制解调器MODEM,因此使用的信号线较多,即9根线都需要上。

    图片

    如果不接MODEM,就只接3根线就OK,即TXD,RXD,GND。

     

    展开全文
  • 对于一些学校、工业、科研客户来说,电脑的串口非常重要,很多设备都必须采用串口和电脑端软件连接,很多电路模块可以非常直观方便地利用串口调试软件进行调试,很...USB串口模块全称为USBtoSerialportModule,它...

    对于一些学校、工业、科研客户来说,电脑的串口非常重要,很多设备都必须采用串

    口和电脑端软件连接,

    很多电路模块可以非常直观方便地利用串口调试软件进行调试,

    多仪器必须通过串口进行通讯和数据交换。

    但是目前笔记本电脑因为空间的限制和其他方面考虑的原因都没有串口,

    甚至一些台

    式电脑也取消了串口配置,这让我们迫切需要串口的客户非常苦恼。

    USB

    转串口模块全称为

    USB to Serial port Module

    ,它可以将

    USB

    接口虚拟成一个

    串口,解决客户无串口的苦恼。现在市面上的

    USB

    转串品的设备可谓是琳琅满目,质量也

    是参差不齐。

    造成这种现象的根本原因就在于控制芯片的不同。

    现在

    USB

    转串口桥接芯片

    有很多,比如

    CP2102

    FT232

    PL2303

    等等。但并非每一种芯片都可以用作

    ISP

    下载。经

    过测试

    CP2102

    是不能下载的,而

    FT232

    可以下载,但其价格实在不菲。最为适中的就是

    台湾生产的

    PL2303

    ,可以稳定下载,并可以支持多种操作系统。

    PL2303HX

    采用

    28

    脚贴片

    SOIC

    封装,工作频率为

    12MHZ

    ,符合

    USB 1.1

    通信协议,可

    以直接将

    USB

    信号转换成串口信号,波特率从

    75

    1228800

    ,有

    22

    种波特率可以选择,

    并支持

    5

    6

    7

    8

    16

    5

    种数据比特位,是一款相当不错的

    USB

    转串口芯片。

    产品

    1

    :采用

    PL2303

    芯片的

    USB

    TTL

    串口模块

    每个

    12

    含一根

    4

    芯杜邦连接线

    展开全文
  • 本文主要介绍串口通讯协议和RS-232的介绍以及USB/TTL转232模块的工作原理 一、串口通讯协议和RS-232 1.简介 串口通讯(Serial Communication)是一种设备间非常常用的串行通讯方式,因为它简单、便捷,因此大部分...

    前言

    本文主要介绍串口通讯协议和RS-232的介绍以及USB/TTL转232模块的工作原理


    目录

    前言

    一、串口通讯协议和RS-232

    1.简介

    2.RS-232 标准

    二、RS232电平与TTL电平的区别

    三、USB/TTL转232“模块(CH340芯片为例)

     1.基本工作原理

    2.CH340模块介绍

    1.CH340是什么芯片

    2. CH340模块的主要构成及其接口

     四、总结

    参考资料


    一、串口通讯协议和RS-232

    1.简介

    串口通讯(Serial Communication)是一种设备间非常常用的串行通讯方式,因为它简单、便捷,因此大部分电子设备都支持该通讯方式,电子工程师在调试设备时也经常使用该通 讯方式输出调试信息。

    2.RS-232 标准

    RS-232 标准主要规定了信号的用途通讯接口以及信号的电平标准。

     在上面的通讯方式中,两个通讯设备的“DB9接口”之间通过串口信号线建立起连接,串口信号线中使用“RS-232标准”传输数据信号。由于RS-232电平标准的信号不能直接被控制器直接识别,所以这些信号会经过一个“电平转换芯片”转换成控制器能识别的“TTL校准”的电平信号,才能实现通讯。

    二、RS232电平与TTL电平的区别

    • 根据通讯使用的电平标准不同,串口通讯可分为 TTL标准和 RS-232标准
    标准名称逻辑1逻辑0
    TLL2.4V~5V0~0.5V
    RS-232-15V~3V+3V~+15V

    从表格中不难看出,两种标准划分的逻辑电压不同。在电子电路中常使用 TTL 的电平标准,理想状态下,使用 5V 表示二进制逻辑 1,使用 0V 表示逻辑 0;而为了增加串口通讯的远距离传输及抗干扰能力,它使用-15V表示逻辑 1,+15V 表示逻辑 0

    下图为用RS232与TTL电平校准表示同一个信号时的对比

    三、USB/TTL转232“模块(CH340芯片为例)

     1.基本工作原理

    USB转串口即实现计算机USB接口到物理串口之间的转换。可以为没有串口的计算机或其他USB主机增加串口,使用USB转串口设备等于将传统的串口设备变成了即插即用的USB设备。

    USB主机检测到USB转串口设备插入后,首先会对设备复位,然后开始USB枚举过程。USB枚举时过程会获取设备描述符、配置描述符、接口描述符等。描述符中会包含USB设备的厂商ID,设备ID和Class类别等信息。操作系统会根据该信息为设备匹配相应的USB设备驱动。

    USB虚拟串口的实现在系统上依赖于USB转串口驱动,一般由厂家直接提供,也可以使用操作系统自带的CDC类串口驱动等。驱动主要分为2个功能,其一注册USB设备驱动,完成对USB设备的控制与数据通讯,其二注册串口驱动,为串口应用层提供相应的实现方法。

    2.CH340模块介绍

    1.CH340是什么芯片

    CH340 是一个USB 总线的转接芯片,实现USB 转串口、USB 转IrDA 红外或者USB 转打印口。 
        在串口方式下,CH340 提供常用的MODEM联络信号,用于为计算机扩展异步串口,或者将普通的串口设备直接升级到USB 总线。有关USB 转打印口的说明请参考手册(二)CH340DS2。 
        在红外方式下,CH340 外加红外收发器即可构成USB 红外线适配器,实现SIR 红外线通讯。
    特点:   
    ● 全速USB 设备接口,兼容USB V2.0,外围元器件只需要晶体和电容。
    ● 仿真标准串口,用于升级原串口外围设备,或者通过USB 增加额外串口。 
    ● 计算机端Windows 操作系统下的串口应用程序完全兼容,无需修改。 
    ● 硬件全双工串口,内置收发缓冲区,支持通讯波特率50bps~2Mbps。 
    ● 支持常用的MODEM 联络信号RTS、DTR、DCD、RI、DSR、CTS。 
    ● 通过外加电平转换器件,提供RS232RS485RS422 等接口。 
    ● 支持IrDA 规范SIR 红外线通讯,支持波特率2400bps 到115200bps。 
    ● 由于是通过USB 转换的串口,所以只能做到应用层兼容,而无法绝对相同。
    ● 软件兼容CH341,可以直接使用CH341 的驱动程序。 
    ● 提供SSOP-20 无铅封装,兼容RoHS。

    2. CH340模块的主要构成及其接口

     

    USB转串口电路板与单片机的接线图,VCC接线是为了单片机供电,USB转串口的RXD引脚与单片机的TXD引脚相连,USB转串口的TXD引脚与单片机的RXD引脚相连,两者的GND引脚直接相连。 

    四、总结

    本篇博客介绍了STM32F103单片机的串口协议,介绍了RS-232 标准,解释了RSS-232转为TLL的原因以及其原理,并用两者的电平做了对比。阐述了USB转接串口基本原理,并以CH340模块为案例介绍。


    参考资料

    第20章 USART—串口通讯 - 野火_firege - 博客园 (cnblogs.com)

    (9条消息) USB转串口CH340接线方法_嵌入式学徒之斋-CSDN博客_ch340接线

    展开全文
  • 串口通讯2.RS-2323.RS232电平与TTL电平的区别(1).TTL电平标准(2)具体区别二、USB/TTL转232"模块(以CH340芯片模块为例)的工作原理。参考 一、串口协议和RS-232标准 1.串口通讯 串口通讯 (Serial ...
  • 一、串口协议和RS-232标准 1.串口通讯 串口通讯 (Serial Communication)是一种设备间非常常用的串行通讯方式,电子工程师在调试设备时也经常使用该通讯方式输出调试信息。 通讯协议,我们以分层的方式来理解,最基本...
  • USB转TTL、USB转232的区别以及各电平信号的特性分析 1. TTL电平、COMS电平、232电平、USB电平信号的主要特性 *噪声容限:指在前一极输出为最坏的情况下,为保证后一极正常工作,所允许的最大噪声幅度,噪声容限越...
  • 1.串口通信协议简介 串口通信(serial communication)是一种设备间非常常用的串行通信方式,大部分...在上面的通讯方式中,两个通讯设备的"DB9接口"之间通过串口信号线建立起连接,串口信号线中使用"RS-232标准"传输
  • TTL转232需要通过232芯片进行转换。 4.TTL232的使用 USB串口芯片,MCU和一些应用模块通常都是TTL电平。电脑,工业设备或者一些模块通常都是232电平。 TTL电平之间可以相互通讯;232电平相.
  • 维修USB转TTL 模块

    2021-04-21 18:53:39
    认识众多玩家高手/拆客/DIYer,查阅更多资源,一起学习技术知识您需要...别人坏了的,偶得,没基础、没经验,甚至之前也没见过这些高大上的玩意,看看没几个元件,借机学习了解吧模块,着性感透视装1.jpg (55.53 KB,...
  • YDOOK: USB TTL 模块 连线使用实例教程 © YDOOK JY Lin 文章目录YDOOK: USB TTL 模块 连线使用实例教程© YDOOK JY Lin1. 首先安装 模块的芯片驱动:CH340G 驱动:2. 安装成功后,打开设备管理器:此时,CH...
  • 37款传感器与执行器的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止这37种的。鉴于本人手头积累了一些传感器和执行器模块...实验七十五:TTL转RS-485模块 MAX485 RS485模块 MAX485 是一个8.
  • 产品介绍1、采用原装FT232BL工业级芯片,外置EEPRON(93C46)更稳定2、支持Windows 103、支持3种供电模式:5V对外供电、3.3V对外供电、由外部供电(要求3.3V-5V)4、带3个LED:TXD LED、EXD LED、ROWERLED5、GND、RXD、...
  • YDOOK: USB TTL 串口模块接线图 © YDOOK JY Lin 文章目录YDOOK: USB TTL 串口模块接线图© YDOOK JY Lin
  • USB转TTL(CH340)模块测试

    千次阅读 2021-09-23 14:32:17
    USB转TTL(CH340)模块测试一. 资料清单二. CH340模块驱动安装三. 测试四. 注意事项 一. 资料清单 驱动和调试助手 文档资料 二. CH340模块驱动安装 1.将CH340模块插到电脑USB口,点开CH340模块驱动文件,双击这个...
  • 各种电平概述 不同情况下的MCU与PC机的通信 (1)PC机与不带电平转换芯片的USB接口的MCU通信 解决方法:加购ttl转usb模块模块的RX引脚接MCU的TX引脚,TX接RX引脚。了解MCU的供电电压,如是3.3V则MCU的VCC引脚接模块...
  • 网友邮来一个红外学习模块,玩起来还不错,利用它可以把我家的电视、空调控制起来,今天给大家分享一下这个模块的调试过程,如果手里没有USB转TTL模块的,可以利用咱们的最小系统核心板,自己制作一个USB转TTL模块哈...
  • TTL转RS485电路

    千次阅读 2021-01-19 22:40:02
    RS485串口经常用到,本文分享下RS485协议方面基本点,并介绍一种简单的串口TTL(3.3V)电平转换为RS485电平的电路,这个电路是经过制板验证过的。 先简单介绍下RS485一些协议方面的基本点: 工作方式:差分信号 ...
  • 本来这个模块接在3.3V电源上,但是因为是开发板的USB转TTL模块,自带一些led等小元件会分担电压,导致esp8266模块的实际电压达不到3.3V。 程序走不下去,一直卡在jump to run user1 @ 1000 解决方法: 电源接...
  • 描述USB转TTL的硬件设备:USB转TTL主机一台;芯片选用PL-2303HXUSB转TTL刷机线,采用进口PL2303HX芯片。连接上电脑并安装驱动后,电脑即扩展出一个COM3或COM4....等的串口,配合相应软件就能对路由器、机顶盒或接收机...
  • YDOOK: USB TTL 模块 与 ESP8266 WiFi 串口通讯实验 连线实例教程 © YDOOK JY Lin 文章目录YDOOK: USB TTL 模块 与 ESP8266 WiFi 串口通讯实验 连线实例教程© YDOOK JY Lin1. 首先安装 模块的芯片驱动:CH...
  • CH341的串口方式支持WINDOWS 98/ME/2000/XP/Vista/Linux,提供相关驱动程序,CH341的USB串口支持大多数常用的串口监控及调试工具程序。驱动安装方法:1. 标准INF文件安装方法WINDOWS提示找到新硬件,指定驱动程序...
  • 六合一多功能USBUART串口模块CP2102 usb TTL485 232自恢复 正面: 背面: 其中的: 以及引脚说明: 都提到了,不仅仅支持RS232,还支持TTL。 所以,再次遇到TTL,需要去搞清楚,TTL和RS232...
  • TTL转USB电路(CH340G)

    千次阅读 2021-01-29 11:58:42
    RS-232C接口定义 引脚 定义 符号 1 载波检测 DCD(Data Carrier Detect) 2 接收数据 RXD(Received Data) 3 发送数据 TXD(Transmit Data) 4 数据终端就绪 DTR(Data Terminal Ready) 5 信号地 SG(Signal ...
  • 将两台笔记本电脑,借助 usbrs232 模块和杜邦线,建立起串口连接。然后用串口助手等工具软件(带文件传输功能)将一台笔记本上的一个大文件(图片、视频和压缩包软件)传输到另外一台电脑,预算文件大小、波特率和...
  • STM32串口TTL和RS-232

    2021-06-02 14:56:32
    串口是一个泛称,UART、TTL、RS232、RS485都遵循类似的通信时序协议,因此都被通称为串口。 UART接口:通用异步收发器(Universal Asynchronous Receiver/Transmitter),UART是串口收发的逻辑电路,这部分可以独立成...
  • 一、介绍   PC机与树莓派的常用通信方式SSH(Secure Shell)远程登录、VNC Viewer虚拟网络...  我们的笔记本通常没有串口,这时就需要一个USB转TTL模块了,它的作用就是把电平转换到双方都能识别进行通信,USB
  • USB转TTL升级板UBS串口STC单片机下载刷机六合一
  • c2000e1m1是具有高性价比且稳定可靠的串口设备嵌入式联网模块,它提供rs485和ttl串口到tcp/ip网络和tcp/ip网络到rs485和ttl串口的数据透明传输,它可以使设备立即具备联入tcp/ip网络的功能。c2000e1m1向上提供10m...
  • 将两台笔记本电脑,借助 usbrs232模块和杜邦线,建立起串口连接。然后用串口助手等工具软件(带文件传输功能)将一台笔记本上的一个大文件(图片、视频和压缩包软件)传输到另外一台电脑,预算文件大小、波特率和...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 36,886
精华内容 14,754
关键字:

ttl转232模块