精华内容
下载资源
问答
  • 单片机各种通信方式的特点和主要应用场合 串口用的比较多: RS232,用于与标准的RS232设备通讯 网卡,用于互联网或采用网卡端口的设备通讯 I2C,用于单片机自己外设或多个单片机之间通讯 CAN,工业标准,汽车中...

    单片机各种通信方式的特点和主要应用场合

    单片机的端口按通信方式分,可以分成哪两种?

    答:【串行通信、并行通信】


    串口用的比较多:

    RS232,用于与标准的RS232设备通讯

    网卡,用于互联网或采用网卡端口的设备通讯

    I2C,用于单片机自己外设或多个单片机之间通讯

    CAN,工业标准,汽车中常用

     

    并口:

    并口就是直接将数据输入或输出,多少位数据就要用多少根线,此外还要加上控制线2根以上。

    例如8位的数据通讯,至少用10根线。由于单片机的引脚数目有限,这种方法很不实用。

    并行口现在计算机都几乎不用了。如果感兴趣,你就找以前的计算技术方面的书上还有介绍。

    并口线路复杂,可靠性低,速度低,除了早期的打印机还用,也几乎没有这样的外设了。


    单片机的通信方式可以分为并行通信和串行通信。并行方式传送一个字节的数据至少需要8 条数据线。

      一般来讲单片机与打印机等外围设备连接时,除8条数据线外,还要状态、应答等控制线,当传送距离过远时电线要求过多,成本会增加很多。单片机的串行通信方法较为多样,传统的串行通信方式是通过单片机自带的串行口进行RS232 方式的通信。

      串行通信是以一位数据线传送数据的位信号,即使加上几条通信联络控制线,也比并行通信用的线少。

      因此,串行通信适合远距离数据传送,如大型主机与其远程终端之间,处于两地的计算机之间,采用串行通信就非常经济。

      串行通信又分为异步传送和同步传送两种基本方式。

      异步通讯:异步通信传输的数据格式一般由1个起始位、7 个或8 个数据位、1 2 个停止位和一个校验位组成。它用一个起始位表示字符的开始,用停止位表示字符的结束。其每帧的格式如图1 所示。

     

     在一帧格式中,先是一个起始位0,然后是8个数据位,规定低位在前,高位在后,接下来是奇偶校验位(可以省略),最后是停止位1。用这种格式表示字符,则字符可以一个接一个地传送。

      在异步通讯中,通信双方采用独立的时钟,起始位触发双方同步时钟。在异步通信中CPU 与外设之间必须有几项约定,即每一帧位数,字符格式和波特率。字符格式的规定是双方能够在对同一种0 1 的数据串理解成同一种意义。原则上字符格式可以由通讯的双方自由制定,但从通用、方便的角度出发,一般还是使用一些标准为好,如采用ASCII 标准。

      同步通讯:在同步通讯中所传输的数据格式是由多个数据组成,每帧有一个或两个同步字符作为起始位以触发同步时钟开始发送或接收。同步通讯数据帧格式如图2 所示。在异步通信中,每个字符要用起始位和停止位作为字符开始和结束的标志,占用了时间,所以在数据块传递时。波特率指每秒送多少个0 1,由于包含起始位,停止位等,实际传送数据每秒多少字节总比波特率的1/8 少。为了提高速度,常去掉这些标志,采用同步传送。由于数据块传递开始要用同步字符来指示,同时要求由时钟来实现发送端与接收端之间的同步,故硬件较复杂。同步传输方式比异步传输方式速度快,这是它的优势。但同步传输方式也有其缺点,即它必须要用一个时钟来协调收发器的工作,所以它的设备也较复杂。


    展开全文
  • FSMC可以连接异步同步存储器或16位PC存储卡,主要用途有:将 AHB 数据通信事务转换为适当的外部器件协议满足外部器件的访问时序要求所有外部存储器共享地址、数据控制信号,但有各自的片选信号。FSMC 一次只能...

    关注、星标公众,不错过精彩内容3b602d224b136e4ba8f572715a8fc4b6.png

    01

    FSMC特点

    Flexible static memory controller(FSMC)灵活的静态存储控制器。FSMC可以连接异步或同步存储器或16位PC存储卡,主要用途有:

    • 将 AHB 数据通信事务转换为适当的外部器件协议

    • 满足外部器件的访问时序要求

    所有外部存储器共享地址、数据和控制信号,但有各自的片选信号。FSMC 一次只能访问一个外部器件。

    FSMC,即灵活的静态存储控制器,能够与同步或异步存储器和16位PC存储器卡连接,STM32的FSMC接口支持包括SRAM、NANDFLASH、NORFLASH和PSRAM等存储器。

    3a0d86585dbc8b556447ef53da7da32c.png

    △FSMC框图示意

    02

    AHB接口

    AHB设备接口可以使内部CPU和其他主总线外设去访问外部存储器。AHB事务可以传输外部设备协议。特别是当外部存储器被选择位8位或16位,32位的AHB传输传输事务会被划分为多个连续的8位或16的传输事务。片选会在每次访问时切换。

    通用事务规则要求AHB传输数据宽度必须是8位、16位或32位。但是访问外部数据必须有个固定的数据宽度。这可能导致不一样的传输。

    因此必须遵循一些简单的事务规则:

    • AHB事务数据宽度必须和存储器数据宽度相同。在这种情况下不会出问题;

    • AHB事务数据宽度大于存储器数据宽度,在这种情况下,FSMC会将AHB事务分为多个连续的存储器访问,这样符合外部存储器访问数据宽度;

    • AHB事务数据小存储器宽度,在这种情况下,异步传输可能一致,也可能不一致,这取决于外部设备的类型。

    对设备的异步访问要具有字节选择功能(SRAM,ROM,PSRAM),①FSMC 允许写入事务通过其字节选择通道 NBL[1:0] 访问恰当的数据,②允许读取事务。会读取所有存储器字节,并将丢弃无用的存储器字节。 NBL[1:0]在读取事务期间保持为低电平。

    对不具有字节选择功能的器件( 16 位 NOR 和 NAND Flash)进行异步访问,当请求对 16 位宽的 Flash 存储器进行字节访问时会发生此情形。

    显然,不能在字节模式下访问此器件(只能针对 Flash 存储器读取或写入 16 位字),因此①不允许写入事务,②允许读取事务。会读取所有存储器字节,并将丢弃无用的存储器字节。 NBL[1:0]在读取事务期间保持低电平。

    03

    外部设备地址映射

    FSMC的外部设备地址映像,STM32的FSMC将外部存储器划分为固定大小为256M字节的四个存储块:

    • 块1被用于4个NORflash或者PSRAM内存设备。块1被划分为4块NORflash/PSRAM带有独立的片选信号。

    • 块2和块3用于连接NANDflash(一个块驱动一个设备)

    • 块4用于连接PC块设备

    对于每个存储区域,所要使用的存储器类型由用户在配置寄存器中定义

    9acd4d5ee2539b0d4053b4cba2a030de.png

    NOR/PSRAM地址映射

    Bank1的256M字节空间由28根地址线(HADDR[27:0])寻址。这里HADDR,是内部AHB地址总线,但也会参与对外部存储器的寻址,其中,HADDR[25:0]来自外部存储器地址FSMC_A[25:0],而HADDR[26:27]对4个区进行寻址。如下表所示:

    7acc45502cec54f9b44e2543bef1e04a.png

    HADDR[25:0] 包含外部存储器地址。由于HADDR为字节地址,而存储器按字寻址,所以根据存储器数据宽度不同,实际向存储器发送的地址也将有所不同,如下表所示:

    00c3c3118406ac0c0391d7af80e1784f.png

    当Bank1接的是16位宽度存储器的时候:HADDR[25:1]->FSMC_A[24:0];

    当Bank1接的是8位宽度存储器的时候:HADDR[25:0]->FSMC_A[25:0];

    不论外部接8位/16位宽设备,FSMC_A[0]永远接在外部设备地址A[0]。

    04

    NOR/PSRAM控制器

    FSMC 会生成适当的信号时序,以驱动以下类型的存储器

    • 异步 SRAM 和 ROM,8位、16位或者32位

    • PSRAM,异步模式,突发模式,复用或非复用

    • NOR Flash,异步模式或突发模式,复用或非复用

    FSMC每个块输出独立的片选信号NE[4:1]。其他信号(读,数据和控制)是共享的;

    对于同步访问,FSMC仅仅在读写事务时给选择的外部设备发出时钟。HCLK时钟频率是该时钟的整数倍。每个块的大小固定64M字节。

    存储器的可编程参数包括访问时序(详见下图)和对等待管理的支持(用于在突发模式下访问NOR Flash 和PSRAM)。

    NOR/PSRAM 的可编程访问参数

    93fb399612158007e6a54d8e0385faa5.png

    05

    外部存储器接口信号

    非复用 I/OPSRAM/SRAM

    注意:前缀“N”表示相关的信号为低电平有效

    2eee665de9626157fb89e91cc6f2d67d.png

    06

    NOR/PSRAM控制器异步事务

    异步静态存储器(NOR Flash、PSRAM、SRAM)

    • 信号通过内部时钟 HCLK 进行同步,不会将此时钟发送到存储器;

    • FSMC 总是会先对数据进行采样,而后再禁止片选信号 NE。这样可以确保符合存储器数据保持时序的要求(数据转换的芯片使能高电平,通常最低为 0 ns。);

    • 如果使能扩展模式(FSMC_BCRx 寄存器中的 EXTMOD 位置 1),则最多可提供四种扩展模式( A、 B、 C 和 D)。可以混合使用 A、 B、 C 和 D 模式来进行读取和写入操作。例如,可以在模式 A 下执行读取操作,而在模式 B 下执行写入操作;

    • 如果禁用扩展模式(FSMC_BCRx 寄存器中的 EXTMOD 位复位),则 FSMC 可以在模式 1 或模式 2 下运行,如下所述①当选择 SRAM/CRAM 存储器类型时,模式 1 为默认模式( FSMC_BCRx 寄存器中MTYP = 0x0 或 0x01)②当选择 NOR 存储器类型时,模式 2 为默认模式( FSMC_BCRx 寄存器中 MTYP =0x10)

    对于这5种模式,总结如下:

    模式1/A:SRAM/PSRAM(CRAM)OE翻转,模式A与模式1的区别是NOE的变化和相互独立的读写时序。

    模式2/B:NOR闪存,模式2/B与模式1相比较,不同的是NADV的变化,且在扩展模式下(模式B)读写时序相互独立。(只有当设置了扩展模式时(模式B),FSMC_BWTRx才有效,否则该寄存器的内容不起作用。)

    模式C :NOR闪存- OE翻转,模式C与模式1不同的是,NOE和NADV的翻转变化,以及独立的读写时序;

    模式D:带地址扩展的异步操作,模式D与模式1不同的是NADV的翻转变化,NOE的翻转出现在NADV翻转之后,并且具有独立的读写时序。

    07

    模式1

    模式 1 -SRAM/PSRAM (CRAM)

    下图显示了所遵循的受支持模式的读写事务通过配置FSMC_BCRx, and FSMC_BTRx/FSMC_BWTRx寄存器

    ▽模式1读访问

    96ac479f2a503b6214ed78d55f3d8941.png

    ▽模式1写访问

    42fca2f45694c43870f024a544420e3c.png

    位于写入事务末尾的一个HCLK 周期有助于确保NWE 上升沿之后的地址和数据保持时间。由于存在此HCLK 周期,DATAST 值必须大于零(DATAST > 0)。

    08

    模式A

    模式 A -SRAM/PSRAM (CRAM) OE 切换

    ▽模式A读访问

    eb1797a8007b0414c74f38416eeacfa6.png

    ▽模式A写访问

    3a1d3930afac402c39240d3e40a4488d.png

    与模式1的不同之处在于NOE 的切换与独立的读取和写入时序

    对于模式A,

    ADDSET就是NWE的高电平时间,也就是地址建立时间

    DATAST就是NWE的低电平时间,也就是数据保持时间

    09

    代码说明

    readWriteTiming.FSMC_AddressSetupTime = 0x02;   //地址建立时间(ADDSET)为2个HCLK 2*1/120M=16nsreadWriteTiming.FSMC_AddressHoldTime = 0x02;   //地址保持时间(ADDHLD),16ns  readWriteTiming.FSMC_DataSetupTime = 0x06;     //数据建立时间,50nsreadWriteTiming.FSMC_BusTurnAroundDuration = 0x00;//总线恢复时间readWriteTiming.FSMC_CLKDivision = 0x00;// 时钟分频因子 readWriteTiming.FSMC_DataLatency = 0x00;//数据产生时间readWriteTiming.FSMC_AccessMode = FSMC_AccessMode_A;   //模式A

    FSMC_AddressSetupTime:这些位定义地址的建立时间,适用于SRAM、ROM和异步总线复用模式的NOR闪存操作。

    FSMC_AddressHoldTime :这些位定义地址的保持时间,适用于SRAM、ROM和异步总线复用模式的NOR闪存操作。

    FSMC_DataSetupTime:这些位定义数据的保持时间,适用于SRAM、ROM和异步总线复用模式的NOR闪存操作。

    FSMC_BusTurnAroundDuration:这些位用于定义一次读操作之后在总线上的延迟(仅适用于总线复用模式的NOR闪存操作),一次读操作之后控制器需要在数据总线上为下次操作送出地址,这个延迟就是为了防止总线冲突。如果扩展的存储器系统不包含总线复用模式的存储器,或最慢的存储器可以在6个HCLK时钟周期内将数据总线恢复到高阻状态,可以设置这个参数为其最小值。

    FSMC_CLKDivision :定义CLK时钟输出信号的周期,以HCLK周期数表示。

    FSMC_DataLatency:处于同步成组模式的NOR闪存,需要定义在读取第一个数据之前等待的存储器周期数目。这个时间参数不是以HCLK表示,而是以闪存时钟(CLK)表示。在访问异步NOR闪存、SRAM或ROM时,这个参数不起作用。操作CRAM时,这个参数必须为0

    FSMC_AccessMode :访问模式

    FSMC_NORSRAMInitStructure.FSMC_Bank = FSMC_Bank1_NORSRAM1;//  这里我们使用NE1 ,也就对应BTCR[6],[7]。FSMC_NORSRAMInitStructure.FSMC_DataAddressMux = FSMC_DataAddressMux_Disable;// 不复用数据地址FSMC_NORSRAMInitStructure.FSMC_MemoryType = FSMC_MemoryType_SRAM;// FSMC_MemoryType_SRAM; FSMC_NORSRAMInitStructure.FSMC_MemoryDataWidth = FSMC_MemoryDataWidth_8b;//存储器数据宽度为8bit   FSMC_NORSRAMInitStructure.FSMC_BurstAccessMode = FSMC_BurstAccessMode_Disable;FSMC_NORSRAMInitStructure.FSMC_AsynchronousWait = FSMC_AsynchronousWait_Disable;  FSMC_NORSRAMInitStructure.FSMC_WaitSignalPolarity = FSMC_WaitSignalPolarity_Low;FSMC_NORSRAMInitStructure.FSMC_WrapMode = FSMC_WrapMode_Disable;FSMC_NORSRAMInitStructure.FSMC_WaitSignalActive = FSMC_WaitSignalActive_BeforeWaitState;FSMC_NORSRAMInitStructure.FSMC_WriteOperation = FSMC_WriteOperation_Enable;//  存储器写使能FSMC_NORSRAMInitStructure.FSMC_WaitSignal = FSMC_WaitSignal_Disable;FSMC_NORSRAMInitStructure.FSMC_ExtendedMode = FSMC_ExtendedMode_Disable;// 读写使用相同的时序FSMC_NORSRAMInitStructure.FSMC_WriteBurst = FSMC_WriteBurst_Disable;FSMC_NORSRAMInitStructure.FSMC_ReadWriteTimingStruct = &readWriteTiming;//读写时序FSMC_NORSRAMInitStructure.FSMC_WriteTimingStruct = &readWriteTiming;//写时序

    FSMC_Bank:nor被分为四块,其中这个参数是说明对那个块编程

    FSMC_DataAddressMux:地址\数据是否复用

    FSMC_MemoryType:存储器类型

    FSMC_MemoryDataWidth:数据总线宽度8位/16位 

    FSMC_BurstAccessMode:是否进行成组模式访问

    FSMC_WaitSignalPolarity:等待信号有效级性

    FSMC_WrapMode:该位决定控制器是否支持把非对齐的AHB成组操作分割成2次线性操作;该位仅在存储器的成组模式下有效。

    FSMC_WaitSignalActive:当闪存存储器处于成组传输模式时,NWAIT信号指示从闪存存储器出来的数据是否有效或是否需要插入等待周期。该位决定存储器是在等待状态之前的一个时钟周期产生NWAIT信号,还是在等待状态期间产生NWAIT信号。

    FSMC_WriteOperation:该位指示FSMC是否允许/禁止对存储器的写操作。

    FSMC_WaitSignal:当闪存存储器处于成组传输模式时,这一位允许/禁止通过NWAIT信号插入等待状态。

    FSMC_ExtendedMode:该位允许FSMC使用FSMC_BWTR寄存器,即允许读和写使用不同的时序。

    FSMC_WriteBurst:对于处于成组传输模式的闪存存储器,这一位允许/禁止通过NWAIT信号插入等待状态。读操作的同步成组传输协议使能位是FSMC_BCRx寄存器的BURSTEN位。

    FSMC_ReadWriteTimingStruct:读时序配置指针

    FSMC_WriteTimingStruct:写时序配置指针

    a95a60340447c3544a1ef865b2c6c835.gifcc45e0faafd55afa244dde88399dcebd.gif

    晶振原理解析

    复位电路设计

    STM32F207时钟系统解析

    STM32延时函数的四种方法

    设计一款兼容ST207和GD207的开发板

    展开全文
  • 消息中间件 MQ 企业级方案设计,第 1 部分: 异步...本文是第 1 部分,将为大家介绍异步通信同步通信特点以及如何设计具有高可用性负载均衡能力的 MQ 方案。 查看本系列更多内容 | 0 评论: 温 洪涛, 售

    http://www.ibm.com/developerworks/cn/websphere/library/techarticles/0805_wenhongt/

    消息中间件 MQ 企业级方案设计,第 1 部分: 异步通信与负载均衡

    本系列以使用 IBM 大型机服务器的客户为主要对象,探讨如何应用 WebSphere MQ 的特性来实现企业级应用的业务需求。本文是第 1 部分,将为大家介绍异步通信与同步通信的特点以及如何设计具有高可用性和负载均衡能力的 MQ 方案。

    温 洪涛, 售前工程师, IBM

    2008 年 6 月 19 日

    • +内容

    引言

    Websphere MQ 是 IBM 功能强大的消息传送中间件产品,它以其成熟的技术和世界领先的产品向我们提供了的功能丰富、可靠易用的异构平台间实现可靠信息传递的成熟解决方案。使用 MQ 消息传递产品可以帮助业务应用在不同种类平台上交换信息,以消息的方式接收、发送数据,从而实现企业应用集成。MQ 屏蔽了异构软硬件平台和网络协议的复杂性,确保“消息到达并且仅到达一次”的可靠的消息传递,满足高可靠性的、高性能的、安全可靠的稳定信息数据传输要求,并具有开放性、扩展性、先进性、安全性、可管理性和易于维护开发等特性。依靠这些优势,MQ 在消息类中间件市场上占有统治地位,已经成为事实上的行业标准,在企业的各类应用中承担了可靠的信息数据传输的基础支撑。MQ 是为能够支撑大型企业的海量信息传输而设计的,它设计了很多应用特性,为企业级应用提供支持,这些特性分散在系统设计和应用编程的各种细节之处。本系列以使用 IBM 大型机服务器的客户为主要对象,对异步通信与同步通信、MQ 高可用性及负载均衡方案、MQ 的安全性实现、MQ 与传统 CICS 应用的连接、使用 MQ 实现 SOA 服务、MQ 应用性能监控和企业级应用设计构架等几个方面探讨如何应用 MQ 的特性实现企业级应用的业务需求。本文是本系列的第 1 部分,将为大家介绍异步通信与同步通信的特点与设计考虑以及 MQ 高可用性及负载均衡方案。

    异步通信与同步通信

    异步通信与同步通信的特点

    MQ 在支持同步通讯的同时,提供了基于消息队列存储 - 转发机制的异步通讯模式,应用程序只需将消息交给 MQ,就由 MQ 负责将消息安全、可靠地发送出去,不再需要应用和人工的干预,真正实现了数据传输自动化,这一特点能够使应用程序独立于通信对方和网络的可用性。与我们常见的同步通信相比,异步通信模式有以下特点:

    • 通信的达成只依赖于发送方和消息中间件,接收方以及网络的意外情况不造成影响。
    • 因为不必实现同步握手,异步通信通常效率更高。
    • 因为不必等待响应,异步通信倾向于实现更短的交易处理,节省系统资源占用。
    • 异步通信有利于提高系统并发度,提高系统吞吐能力。
    • 异步通信有利于实现松散耦合的系统结构。

    与异步通信相比,同步通信想法更为简单而且更容易实现――发起方在系统中等待直到对方响应,这样可以避免复杂的发送 / 确认 / 重传机制的设计,但同时也造成了低效率和对资源占用大的缺点,同步通信目前是一种常见的廉价通信实现方式。

    需要说明的是这里谈论的同步 / 异步是底层消息传输的模式,与其最终提供的服务模式无关:同步业务服务可以通过同步通信实现,也可以通过异步通信实现。比如我们常见的电话业务,一般我们都认为是一种同步的服务,但电信公司实际实施时,如果是通过交换机,在通话双方之间建立一个电路连接,那就是一种同步通信实现;如果电信公司采用的是 IP 电话,通过网络把声音打成若干数据包在 Internet 上发送,在收话方没有感觉到的时间内再按顺序组合把语音还原出来,那就是使用的异步底层通信实现。我们进行应用方案设计时要充分意识到两种通信模式的特点,考虑各种选择的可能性和优劣。

    异步通信实现同步应用设计

    由于同步 / 异步通信有各自的特点,所以通过异步通信来实现同步应用时,有一些特殊的方法需要考虑。异步通信基础上实现同步应用,是通过若干异步消息分段实现的,以最简单的双方模式为例,A 发送给 B 一个异步消息,B 接收后完成特定处理,再返回给 B 一个异步消息,如果这个处理过程足够快,就能够实现一个请求 / 应答模式的同步应用。这种模式下,应用中 UOW 的范围,和同步应用下是有很大不同的,应用设计中要充分考虑到这种区别。

    在同步模式下,在 A 和 B 的所有操作都可以放在一个 UOW 中,通过两阶段提交协议实现数据一致;在异步模式,应用会分成几个 UOW,第一个是应用程序在本地队列管理器中的操作,第二个是两个队列管理器间的数据传输,这个 UOW 是系统完成的,对于应用是透明的,第三个 UOW 是远程应用在远程队列管理器中的操作。应用设计时要充分意识到这些区别。

    由于交易一致性控制,一个 MQ 应用中在队列中进行的改变,只在它 COMMIT 后,其他应用程序才能看到,所以在进行请求 / 应答模式的 MQ 应用程序中,请求程序发送请求消息后,要在适当的位置下 COMMIT,完成这个 UOW,然后在到应答队列里去等待对方完成 UOW 后的返回。应答程序也要与请求程序类似,也要合理地控制 UOW 的范围,使得返回消息能够恰当地被请求程序得到。

    在使用 MQ 进行要求同步通讯的程序设计时,会碰到原来可能会做单一 UOW 的应用,在 MQ 下的异步应用设计下要划分成若干个 UOW,这就涉及到如何在多 UOW 下保证数据整体的一致性。这种需求,一般可以通过合理的冲正设计来实现。

    MQ Server 与 Client

    MQ 产品分为 Server 和 Client 两种版本,在 MQ Server 的运行环境下,有队列管理器、队列、消息通道等对象,它提供全面的消息服务;MQ Client 本身没有队列管理器、队列等对象,它通过 MQI 通道与服务器之间建立通讯,并将消息从客户端发往服务器端的队列,或从 Server 端的队列中取得消息,其他功能也比 Server 有限。MQ Client 与 Server 之间的通信是同步模式完成的,它必须在 Server 正在工作并且可以通过网络访问的情况下才能完成任务。MQ Client 通常在有大量末端环境的应用系统中采用,可以通过这种方式来节省成本,但要求在 Client 到 Server 之间要有比较可靠的网络连接。

    MQ 高可用性及负载均衡方案

    大型企业应用方案,在功能性要求之外系统高可靠性能力与负载均衡能力是一个十分重要的衡量指标。MQ 在这方案提供了很强的特性,主要通过两种主要技术实现:MQ Cluster 技术和 Queue Sharing Group 技术。Cluster 技术可以在各种系统平台上甚至跨平台实施,能够提供基本的高可用性能力,Queue Sharing Group 只能在 IBM System z 主机平台上实现,能够提供最高级的高可用性能力。

    MQ Cluster 方案

    MQ Cluster 结构与特点

    使用 Queue Manager Cluster 技术,可以把安装在不同平台(如 AIX,LINUX,WINDOW,z/OS)上的若干个 Queue Manager 设计为一个集群,每个 Queue Manager 都创建成集群中的一员。集群中有一个或多个 Queue Manager 可以定义成拥有整个集群的对象定义信息,称作 Repository queue manager。当用户在集群中创建一个接收通道或队列时,系统会自动在其他队列管理器中创建相应的发送通道和远程队列定义。不论整个集群中有多少 Queue Manager,每个 Queue Manager 只要建立一个接收通道,和一个指向 Repository queue manager 的发送通道就可以完成消息连通,而不必要针对每个 queue manager 分别定义通道;同时每个 Queue Manager 也不必要定义远程所有用到的远程 Queue.

    图1 MQ Cluster 集群
    图1 MQ Cluster 集群

    通过 Cluster 技术,可以有效地减少系统的管理工作,更快地建立应用同时可以提高系统的可用性并可以在集群 MQ 管理器间实现负载均衡。

    减少系统的管理工作主要体现在 :

    • 不论连接多少远程队列管理器,只要建一个集群发送通道和一个集群接收通道,不必为每个管理器分别建立通道
    • 每个队列管理器只要建立一个 transmission queues。
    • 不必一一定义远程队列,可直接使用

    使用 Cluster 技术提高系统的可用性和实现负载均衡,是通过在 Cluster 内的不同 QMGR 上建立同名的 Queue(同一个 Queue 的多个实例)来实现的。每个 Queue 的实例都能作为消息的目的地,MQ 能够在依照一定的算法决定实际消息应当传给哪个 QMGR。这样当集群里某个 QMGR 失效时,消息会自动路由到其他活动的 QMGR 管理的实例上去。

    典型部署模式

    在实际应用 Cluster 技术时,一般采取如下的部署方案:

    图2 MQ Cluster 的典型部署模式
    图2 MQ Cluster 的典型部署模式

    在 Cluster 中首先设计一台 MQ 服务器作为整个 Cluster 的网关,作为对外的连接点,它本地并不定义任何输入(Inbound)队列(如上例中的 Q1),只定义输出(Outbound)队列(如上例中的 Q2)。另外设置若干消息处理服务器,其中定义本地的输入队列,同时有消息处理程序在运行。在外部交易进入 Cluster 时首先发送到网关机上,由网关动态地发送到 Cluster 里定义了输入队列的 MQ 服务器上去。MQ 网关可以根据设置,按照轮循或权重的方式对进入的消息进行分发,还可以通过出口程序(User Exit)实现更加复杂的分发机制。

    在每个消息处理服务器都部署有完全相同的应用处理程序,它们读取输入队列里的消息,经过处理后把结果写入输出队列。输出队列只定义在 MQ 网关机器上,任何消息处理服务器写出的消息都回最终传送到网关上。前台程序连接网关,读取返回结果。

    为了获得更高可用性,这个方案中有两点需要注意:1. 可以看到 MQ 网关是个单点隐患,为了更高可用性,要使用 HACMP 等方案实现备份。2. 如果消息处理服务器上的应用程序意外停止运行,数据会在队列中堆积起来,为了避免这种情况,需要自动脚本在应用程序停止时自动把 MQ 停止,这样后来的消息会发给其他服务器处理。

    网络层负载均衡器与 MQ

    一些企业中,经常使用 F5 之只类的网络层负载均衡器来实现一种高可靠性 / 负载均衡解决方案。很多应用可以依靠 F5 实现的动态 IP 地址功能,在不改变应用程序的情况下实现高可用性,这为无状态的网络应用提供了方便的均衡手段。但是 MQ 产品为实现消息到并且只到一次,在收发双方的发送通道和接收通道上要传递记数和确认信息,这样以来发送和接收方必须有固定的一对一关系,如果在中间网络上配置了网络层的负载均衡器,由于它不知道这种机制的存在,必然造成通信的错乱,所以在使用 MQ 的网络环境中不能够同时使用网络层的负载均衡设备。

    主机 MQ 特有高可用性技术 -Queue Sharing Group 设计

    Queue-Sharing Group 技术介绍

    Shared Queue Group 是 MQ 依托 System z 主机的 Parallel Sysplex 技术而实现的高级特性。Shared queue 是一种本地队列,shared queue 里存储的数据可以被同一个 Sysplex 里的若干个 QMGR 共同访问。能够访问同一个 shared queue 的所有 QMGR 称为一个 queue-sharing group,它们可以访问同一组 shared queues。 Shared queue 的数据存储在 Coupling Facility 的 list structures 里面,一个 Group 里的所有队列管理器都能够从这个队列里读取数据和发送数据。

    图3MQ Queue Share Group
    图3MQ Queue Share Group

    Shared queue 的定义被所有 QMGR 共享,共享的队列定义是存放在 DB2 的表里,在一个群里,队列只要定义一次,就能被所有的 QMGR 共享。Queue-sharing group 里的每个 QMGR 都有与一个 DB2 系统相连,这些 DB2 系统必须在一个 data-sharing group 里,这样 QMGR 才能够访问相同的共享队列定义。

    在主机上使用 Queue Share Group 技术,结合 Sysplex 提供的系统功能(如 SYSPLEX Distributor 和 VTAM generic resources),MQ 除了可以实现应用处理上的高可用性,还能够提供网络接入和送出的高可用性,这是通过 MQ 的 Shared channel 来实现的。

    图4 MQ 共享通道
    图4 MQ 共享通道

    共享的接入通道 : Queue-sharing group 里的每个 MQ Server 的 channel initiator 都在同一个 IP 端口监听消息,这个端口通过 Sysplex 提供的网络技术对外做成一个 generic port。这样分布式系统 MQ Channel 的连接请求会被分发到任意一个 MQ Server 上,只要 Group 里还有一个 Server 能够响应,就能够完成消息向 Shared Queue 里的发送。

    共享的外传通道 :如果一个发送通道的 transmission queue 定义为共享的 Shared Queue,那么这个通道就是共享的外传通道。Group 里的任意一个 QueueManger 都可以从共享的 transmission queue 里取得数据向外传输,这样只要还有一个 QM 有响应,这个通道对外就是畅通的。

    Shared queue 技术使 MQ 在应用上具有以下优点:

    • Scalability

    应用处理能力能够很方便地进行扩展,只要新增一个 QMGR,甚至新增一个 z/OS image 并在上面建立 QMGR 和应用程序,就能很好地扩大系统处理能力。

    • Availability

    多个 QMGR 可以访问同一个 Queue,单个 QMGR 的故障不影响 Shared queue 的应用。MQ 通过 peer recovery 技术,可以监控 QMGR 的非正常中断,能够自动回滚未完成的 ULW。

    • Workload balance

    利用 SYSPLEX 的负载均衡功能,可以在多个 QMGR 间平衡处理量。

    Queue Share Group 技术的优势

    Cluster 技术和 Share Queue 技术为实现可靠性、扩展性和均衡,使用的基本手段是不同的:

    • Queue Manager Cluster

    Queue Manager Cluster 使用的是同名队列的多个实例,就是在 Cluster 里的多个 QMGR 上建立相同的 Queue。进入这个队列的数据会转发给某个 QMGR,一旦数据进入这个 QMGR,就只能由这个 QMGR 访问。

    • Queue-Sharing Group

    Queue-Sharing Group 使用的是一个共享的队列,队列的数据存储只有一份,可以由多个 QMGR 共同访问。

    抛开 zSeries 对其他开放平台的系统优势不谈,由于这个基本手段本质的不同,使得两种技术提供的服务水平有很大不同:

    • Cluster 只在消息进入时实现高可用性,一旦消息进入某个 QMGR,它就只能由那个 QMGR 处理,如果在消息被处理完之前,系统发生故障,已经进入这个 QMGR 的数据将不能被处理。而使用 Shared queue 时,一个 QMGR 失败不会影响队列里的数据。
    • Queue Manager Cluster 时一旦数据进入某个 QMGR,就只能被这个 QMGR 访问,如果某个系统上的 QMGR 正常,但处理 MQ 消息的应用程序发生故障停止运行,消息还会继续发送到这个 QMGR 里去,但这些消息就会积压在这里不会得到处理。在 Shared queue 时,由于 QMGR 使用的是同一个队列,如果某个 QMGR 后面的应用程序停止工作,消息会被其他 QMGR 后面的应用程序处理,不会对整个应用造成任何影响。
    展开全文
  • 本系列以使用 IBM 大型机服务器的客户为主要对象,探讨如何应用 WebSphere MQ 的特性来实现企业级应用的业务...本文是第 1 部分,将为大家介绍异步通信同步通信特点以及如何设计具有高可用性负载均衡能力的 MQ...

    本系列以使用 IBM 大型机服务器的客户为主要对象,探讨如何应用 WebSphere MQ 的特性来实现企业级应用的业务需求。本文是第 1 部分,将为大家介绍异步通信与同步通信的特点以及如何设计具有高可用性和负载均衡能力的 MQ 方案。

    引言

    Websphere MQ 是 IBM 功能强大的消息传送中间件产品,它以其成熟的技术和世界领先的产品向我们提供了的功能丰富、可靠易用的异构平台间实现可靠信息传递的成熟解决方案。使用 MQ 消息传递产品可以帮助业务应用在不同种类平台上交换信息,以消息的方式接收、发送数据,从而实现企业应用集成。MQ 屏蔽了异构软硬件平台和网络协议的复杂性,确保“消息到达并且仅到达一次”的可靠的消息传递,满足高可靠性的、高性能的、安全可靠的稳定信息数据传输要求,并具有开放性、扩展性、先进性、安全性、可管理性和易于维护开发等特性。依靠这些优势,MQ 在消息类中间件市场上占有统治地位,已经成为事实上的行业标准,在企业的各类应用中承担了可靠的信息数据传输的基础支撑。MQ 是为能够支撑大型企业的海量信息传输而设计的,它设计了很多应用特性,为企业级应用提供支持,这些特性分散在系统设计和应用编程的各种细节之处。本系列以使用 IBM 大型机服务器的客户为主要对象,对异步通信与同步通信、MQ 高可用性及负载均衡方案、MQ 的安全性实现、MQ 与传统 CICS 应用的连接、使用 MQ 实现 SOA 服务、MQ 应用性能监控和企业级应用设计构架等几个方面探讨如何应用 MQ 的特性实现企业级应用的业务需求。本文是本系列的第 1 部分,将为大家介绍异步通信与同步通信的特点与设计考虑以及 MQ 高可用性及负载均衡方案。

    异步通信与同步通信

    异步通信与同步通信的特点

    MQ 在支持同步通讯的同时,提供了基于消息队列存储 - 转发机制的异步通讯模式,应用程序只需将消息交给 MQ,就由 MQ 负责将消息安全、可靠地发送出去,不再需要应用和人工的干预,真正实现了数据传输自动化,这一特点能够使应用程序独立于通信对方和网络的可用性。与我们常见的同步通信相比,异步通信模式有以下特点:

    • 通信的达成只依赖于发送方和消息中间件,接收方以及网络的意外情况不造成影响。
    • 因为不必实现同步握手,异步通信通常效率更高。
    • 因为不必等待响应,异步通信倾向于实现更短的交易处理,节省系统资源占用。
    • 异步通信有利于提高系统并发度,提高系统吞吐能力。
    • 异步通信有利于实现松散耦合的系统结构。

    与异步通信相比,同步通信想法更为简单而且更容易实现――发起方在系统中等待直到对方响应,这样可以避免复杂的发送 / 确认 / 重传机制的设计,但同时也造成了低效率和对资源占用大的缺点,同步通信目前是一种常见的廉价通信实现方式。

    需要说明的是这里谈论的同步 / 异步是底层消息传输的模式,与其最终提供的服务模式无关:同步业务服务可以通过同步通信实现,也可以通过异步通信实现。比如我们常见的电话业务,一般我们都认为是一种同步的服务,但电信公司实际实施时,如果是通过交换机,在通话双方之间建立一个电路连接,那就是一种同步通信实现;如果电信公司采用的是 IP 电话,通过网络把声音打成若干数据包在 Internet 上发送,在收话方没有感觉到的时间内再按顺序组合把语音还原出来,那就是使用的异步底层通信实现。我们进行应用方案设计时要充分意识到两种通信模式的特点,考虑各种选择的可能性和优劣。

    异步通信实现同步应用设计

    由于同步 / 异步通信有各自的特点,所以通过异步通信来实现同步应用时,有一些特殊的方法需要考虑。异步通信基础上实现同步应用,是通过若干异步消息分段实现的,以最简单的双方模式为例,A 发送给 B 一个异步消息,B 接收后完成特定处理,再返回给 B 一个异步消息,如果这个处理过程足够快,就能够实现一个请求 / 应答模式的同步应用。这种模式下,应用中 UOW 的范围,和同步应用下是有很大不同的,应用设计中要充分考虑到这种区别。

    在同步模式下,在 A 和 B 的所有操作都可以放在一个 UOW 中,通过两阶段提交协议实现数据一致;在异步模式,应用会分成几个 UOW,第一个是应用程序在本地队列管理器中的操作,第二个是两个队列管理器间的数据传输,这个 UOW 是系统完成的,对于应用是透明的,第三个 UOW 是远程应用在远程队列管理器中的操作。应用设计时要充分意识到这些区别。

    由于交易一致性控制,一个 MQ 应用中在队列中进行的改变,只在它 COMMIT 后,其他应用程序才能看到,所以在进行请求 / 应答模式的 MQ 应用程序中,请求程序发送请求消息后,要在适当的位置下 COMMIT,完成这个 UOW,然后在到应答队列里去等待对方完成 UOW 后的返回。应答程序也要与请求程序类似,也要合理地控制 UOW 的范围,使得返回消息能够恰当地被请求程序得到。

    在使用 MQ 进行要求同步通讯的程序设计时,会碰到原来可能会做单一 UOW 的应用,在 MQ 下的异步应用设计下要划分成若干个 UOW,这就涉及到如何在多 UOW 下保证数据整体的一致性。这种需求,一般可以通过合理的冲正设计来实现。

    MQ Server 与 Client

    MQ 产品分为 Server 和 Client 两种版本,在 MQ Server 的运行环境下,有队列管理器、队列、消息通道等对象,它提供全面的消息服务;MQ Client 本身没有队列管理器、队列等对象,它通过 MQI 通道与服务器之间建立通讯,并将消息从客户端发往服务器端的队列,或从 Server 端的队列中取得消息,其他功能也比 Server 有限。MQ Client 与 Server 之间的通信是同步模式完成的,它必须在 Server 正在工作并且可以通过网络访问的情况下才能完成任务。MQ Client 通常在有大量末端环境的应用系统中采用,可以通过这种方式来节省成本,但要求在 Client 到 Server 之间要有比较可靠的网络连接。

    MQ 高可用性及负载均衡方案

    大型企业应用方案,在功能性要求之外系统高可靠性能力与负载均衡能力是一个十分重要的衡量指标。MQ 在这方案提供了很强的特性,主要通过两种主要技术实现:MQ Cluster 技术和 Queue Sharing Group 技术。Cluster 技术可以在各种系统平台上甚至跨平台实施,能够提供基本的高可用性能力,Queue Sharing Group 只能在 IBM System z 主机平台上实现,能够提供最高级的高可用性能力。

    MQ Cluster 方案

    MQ Cluster 结构与特点

    使用 Queue Manager Cluster 技术,可以把安装在不同平台(如 AIX,LINUX,WINDOW,z/OS)上的若干个 Queue Manager 设计为一个集群,每个 Queue Manager 都创建成集群中的一员。集群中有一个或多个 Queue Manager 可以定义成拥有整个集群的对象定义信息,称作 Repository queue manager。当用户在集群中创建一个接收通道或队列时,系统会自动在其他队列管理器中创建相应的发送通道和远程队列定义。不论整个集群中有多少 Queue Manager,每个 Queue Manager 只要建立一个接收通道,和一个指向 Repository queue manager 的发送通道就可以完成消息连通,而不必要针对每个 queue manager 分别定义通道;同时每个 Queue Manager 也不必要定义远程所有用到的远程 Queue.


    图1 MQ Cluster 集群

    通过 Cluster 技术,可以有效地减少系统的管理工作,更快地建立应用同时可以提高系统的可用性并可以在集群 MQ 管理器间实现负载均衡。

    减少系统的管理工作主要体现在 :

    • 不论连接多少远程队列管理器,只要建一个集群发送通道和一个集群接收通道,不必为每个管理器分别建立通道
    • 每个队列管理器只要建立一个 transmission queues。
    • 不必一一定义远程队列,可直接使用

    使用 Cluster 技术提高系统的可用性和实现负载均衡,是通过在 Cluster 内的不同 QMGR 上建立同名的 Queue(同一个 Queue 的多个实例)来实现的。每个 Queue 的实例都能作为消息的目的地,MQ 能够在依照一定的算法决定实际消息应当传给哪个 QMGR。这样当集群里某个 QMGR 失效时,消息会自动路由到其他活动的 QMGR 管理的实例上去。

    典型部署模式

    在实际应用 Cluster 技术时,一般采取如下的部署方案:


    图2 MQ Cluster 的典型部署模式

    在 Cluster 中首先设计一台 MQ 服务器作为整个 Cluster 的网关,作为对外的连接点,它本地并不定义任何输入(Inbound)队列(如上例中的 Q1),只定义输出(Outbound)队列(如上例中的 Q2)。另外设置若干消息处理服务器,其中定义本地的输入队列,同时有消息处理程序在运行。在外部交易进入 Cluster 时首先发送到网关机上,由网关动态地发送到 Cluster 里定义了输入队列的 MQ 服务器上去。MQ 网关可以根据设置,按照轮循或权重的方式对进入的消息进行分发,还可以通过出口程序(User Exit)实现更加复杂的分发机制。

    在每个消息处理服务器都部署有完全相同的应用处理程序,它们读取输入队列里的消息,经过处理后把结果写入输出队列。输出队列只定义在 MQ 网关机器上,任何消息处理服务器写出的消息都回最终传送到网关上。前台程序连接网关,读取返回结果。

    为了获得更高可用性,这个方案中有两点需要注意:1. 可以看到 MQ 网关是个单点隐患,为了更高可用性,要使用 HACMP 等方案实现备份。2. 如果消息处理服务器上的应用程序意外停止运行,数据会在队列中堆积起来,为了避免这种情况,需要自动脚本在应用程序停止时自动把 MQ 停止,这样后来的消息会发给其他服务器处理。

    网络层负载均衡器与 MQ

    一些企业中,经常使用 F5 之只类的网络层负载均衡器来实现一种高可靠性 / 负载均衡解决方案。很多应用可以依靠 F5 实现的动态 IP 地址功能,在不改变应用程序的情况下实现高可用性,这为无状态的网络应用提供了方便的均衡手段。但是 MQ 产品为实现消息到并且只到一次,在收发双方的发送通道和接收通道上要传递记数和确认信息,这样以来发送和接收方必须有固定的一对一关系,如果在中间网络上配置了网络层的负载均衡器,由于它不知道这种机制的存在,必然造成通信的错乱,所以在使用 MQ 的网络环境中不能够同时使用网络层的负载均衡设备。

    主机 MQ 特有高可用性技术 -Queue Sharing Group 设计

    Queue-Sharing Group 技术介绍

    Shared Queue Group 是 MQ 依托 System z 主机的 Parallel Sysplex 技术而实现的高级特性。Shared queue 是一种本地队列,shared queue 里存储的数据可以被同一个 Sysplex 里的若干个 QMGR 共同访问。能够访问同一个 shared queue 的所有 QMGR 称为一个 queue-sharing group,它们可以访问同一组 shared queues。 Shared queue 的数据存储在 Coupling Facility 的 list structures 里面,一个 Group 里的所有队列管理器都能够从这个队列里读取数据和发送数据。


    图3MQ Queue Share Group

    Shared queue 的定义被所有 QMGR 共享,共享的队列定义是存放在 DB2 的表里,在一个群里,队列只要定义一次,就能被所有的 QMGR 共享。Queue-sharing group 里的每个 QMGR 都有与一个 DB2 系统相连,这些 DB2 系统必须在一个 data-sharing group 里,这样 QMGR 才能够访问相同的共享队列定义。

    在主机上使用 Queue Share Group 技术,结合 Sysplex 提供的系统功能(如 SYSPLEX Distributor 和 VTAM generic resources),MQ 除了可以实现应用处理上的高可用性,还能够提供网络接入和送出的高可用性,这是通过 MQ 的 Shared channel 来实现的。


    图4 MQ 共享通道

    共享的接入通道 : Queue-sharing group 里的每个 MQ Server 的 channel initiator 都在同一个 IP 端口监听消息,这个端口通过 Sysplex 提供的网络技术对外做成一个 generic port。这样分布式系统 MQ Channel 的连接请求会被分发到任意一个 MQ Server 上,只要 Group 里还有一个 Server 能够响应,就能够完成消息向 Shared Queue 里的发送。

    共享的外传通道 :如果一个发送通道的 transmission queue 定义为共享的 Shared Queue,那么这个通道就是共享的外传通道。Group 里的任意一个 QueueManger 都可以从共享的 transmission queue 里取得数据向外传输,这样只要还有一个 QM 有响应,这个通道对外就是畅通的。

    Shared queue 技术使 MQ 在应用上具有以下优点:

    • Scalability

    应用处理能力能够很方便地进行扩展,只要新增一个 QMGR,甚至新增一个 z/OS image 并在上面建立 QMGR 和应用程序,就能很好地扩大系统处理能力。

    • Availability

    多个 QMGR 可以访问同一个 Queue,单个 QMGR 的故障不影响 Shared queue 的应用。MQ 通过 peer recovery 技术,可以监控 QMGR 的非正常中断,能够自动回滚未完成的 ULW。

    • Workload balance

    利用 SYSPLEX 的负载均衡功能,可以在多个 QMGR 间平衡处理量。

    Queue Share Group 技术的优势

    Cluster 技术和 Share Queue 技术为实现可靠性、扩展性和均衡,使用的基本手段是不同的:

    • Queue Manager Cluster

    Queue Manager Cluster 使用的是同名队列的多个实例,就是在 Cluster 里的多个 QMGR 上建立相同的 Queue。进入这个队列的数据会转发给某个 QMGR,一旦数据进入这个 QMGR,就只能由这个 QMGR 访问。

    • Queue-Sharing Group

    Queue-Sharing Group 使用的是一个共享的队列,队列的数据存储只有一份,可以由多个 QMGR 共同访问。

    抛开 zSeries 对其他开放平台的系统优势不谈,由于这个基本手段本质的不同,使得两种技术提供的服务水平有很大不同:

    • Cluster 只在消息进入时实现高可用性,一旦消息进入某个 QMGR,它就只能由那个 QMGR 处理,如果在消息被处理完之前,系统发生故障,已经进入这个 QMGR 的数据将不能被处理。而使用 Shared queue 时,一个 QMGR 失败不会影响队列里的数据。
    • Queue Manager Cluster 时一旦数据进入某个 QMGR,就只能被这个 QMGR 访问,如果某个系统上的 QMGR 正常,但处理 MQ 消息的应用程序发生故障停止运行,消息还会继续发送到这个 QMGR 里去,但这些消息就会积压在这里不会得到处理。在 Shared queue 时,由于 QMGR 使用的是同一个队列,如果某个 QMGR 后面的应用程序停止工作,消息会被其他 QMGR 后面的应用程序处理,不会对整个应用造成任何影响。
    • Share Queue 是在 Work Load Manager 协调下完成负载均衡的,其负载均衡能力比 Cluster 内带的逻辑要更加强大。Cluster 只能根据消息进入集群时的负载情形转发消息,而 Share Queue 能在消息处理过程中动态地平衡负载。
    • 考虑消息进入时的情况,对于 Cluster,发送方必须指定发送到 Cluster 里做 Gateway 的机器的 IP 地址上,一旦这台机器失效,虽然这个 Queue 的其他 QMGR 还在,消息却不能进入 Cluster,存在单点故障隐患;对于 Share Queue,通过 SYSPLEX Distributor 等技术,发送到特定 IP 地址的数据,可以被路由到任何一台机器,单个机器失效,不会造成影响。

    结束语

    本文是本系列的第 1 部分,为大家介绍了异步通信与同步通信的特点与设计考虑以及 MQ 高可用性及负载均衡方案,下面几节将继续为大家介绍 MQ 的安全性实现 ,MQ 与传统 CICS 应用的连接 , 使用 MQ 实现 SOA 服务 ,MQ 应用监控以及企业级应用设计构架技术方案。

    来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/14789789/viewspace-406844/,如需转载,请注明出处,否则将追究法律责任。

    转载于:http://blog.itpub.net/14789789/viewspace-406844/

    展开全文
  • 51单片机串行通信基础串行、并行通信单工、双工、半双工通信波特率字符帧同步异步通信 串行、并行通信 比较项 并行通信 串行通信 传送特点 各位数据同时发送 数据一位一位的顺序发送 通信成本 高,传输...
  • 前言 这篇博客是我通过学习,进行...主要特点:支持同步和异步操作。  其接口通过三个引脚从外部连接到其它设备。任何 USART 双向通信均需要 至少两个引脚:接收数据输入引脚 (RX) 和发送数据引脚输出 (TX):  ...
  • 数据通信主要技术指标 数据传输方式 串行通信、并行通信 单工通信、半双工通信、全双工通信 基带传输、频带传输、宽带传输 数据的同步技术 异步传输、同步传输 数据编码技术 数字数据信号 模拟传输 幅...
  • 摘 要:介绍了TMS320C5402 McBSP的结构及主要特点,给出了通过McBSP扩展成SPI串口与PC机及AT89S51单片机通信的设计方案。该方案充分利用DSP的McBSP接口功能,实现了主机...
  • 摘要:介绍一种最新推出的电力载波调制解调器芯片ST7538的基本原理,给出ST7538的主要控制...该芯片是为家庭工业领域电力线网络通信而设计的,与ST7536ST7537相比,主要具有以下特点:*有8个工作频段,即:60kHz、
  • 第一次深入了解nio,都会感觉非常的难理解阻塞与非阻塞,同步和异步阻塞,非阻塞,下面来看看吧 一、nio 和 netty 是什么? 1、Java NIO(New IO)是一个可以替代标准Java IO API的IO API(从Java 1.4开始) 2、 Netty ...
  • ppt课件 ppt课件 ppt课件 ppt课件 ppt课件 ppt课件 ppt课件 ppt课件 ppt课件 C#网络通信程序设计 第3章 基于TCP协议的...3掌握同步套接字编程和异步套接字编程方法 4掌握TcpListener和TcpClient的综合应用方法 学习目标
  • 本书的主要特点是:将宽带无线数字通信系统分成最具有代表性的非均衡系统、单载波非扩频均衡系统、正交频分复用系统码分多址系统四大类,全面涵盖了当前及未来宽带无线数字通信的最新内容。本书除了介绍基础知识...
  • 数据通信原理与技术

    2012-10-13 17:07:11
    t 3.2 异步传措与同步传输· 1.3.3 单工、半双工和全双工传输…. 1.4 数据通信系统的主要质量指标 1.4.1 传输速率…………………. 1.4.2 差错串……………………. 1.4.3频带利用守(9M)…………....
  • 同步和异步RPC调用-通信类型由客户端而不是服务器确定 一个接口可以有多个服务器实现-客户端通过在请求中指定目标的jaffa.rpc.module.id来选择所需的接口 同步/异步调用的请求范围超时 用于缓存服务发现信息 支持5种...
  • 1.3.2 异步和同步传输 1.3.3 双工通信 1.4 数据通信系统的质量标准 1.4.1 传输速率 1.4.2 误码率 1.4.3 可靠度 1.4.4 功率利用率频带利用率 1.4.5 标准性 1.4.6 通信建立时间 1.4.7 其它指标 1.5 数据...
  • boost asio ip tcp实现网络通信的小例子

    千次阅读 2013-08-16 09:54:07
    头文件 #include   名空间 using namespace boost::asio;...对于读写方式,ASIO支持同步和异步两种方式,首先登场的是同步方式,下面请同步方式自我介绍一下: 大家好!我是同步方式! 我的主要特点就是执着
  • 6.1 PC机异步通信适配器8250及其编程操作 169 6.1.1 INS8250内部寄存器及其选择方式 169 6.1.2 波特率设置 169 6.1.3 数据位、奇偶校验、停止位等数据格式设置 170 6.1.4 查询I/O方式相关设置 171 6.1.5 中断I/O通信...
  • 书中精选来自工程实践的应用范例,主要涵盖串口通信的理论基础、Visual c++集成开发环境简介、MSComm控件串口编程、Windows API串口编程、TAPI通信编程、串口实现双机互连、串口调试精灵、串口控制Modem设备、串口...
  • 6.1 PC机异步通信适配器8250及其编程操作 169 6.1.1 INS8250内部寄存器及其选择方式 169 6.1.2 波特率设置 169 6.1.3 数据位、奇偶校验、停止位等数据格式设置 170 6.1.4 查询I/O方式相关设置 171 6.1.5 中断I/O通信...
  • 2.1.3 异步传输与同步传输 2.1.4 串行通信的基本参数 2.2 串行通信的接口标准 2.2.1 RS-232C接口标准 2.2.2 RS-422/485接口标准 2.3 PC中的串行端口 2.3.1 查看串行端口信息 2.3.2 串口通信线路连接 2.3.3 串口通信...
  • 2.1.3 异步传输与同步传输 2.1.4 串行通信的基本参数 2.2 串行通信的接口标准 2.2.1 RS-232C接口标准 2.2.2 RS-422/485接口标准 2.3 PC中的串行端口 2.3.1 查看串行端口信息 2.3.2 串口通信线路连接 2.3.3 串口通信...
  • 1.1.1 串行通信特点 1 1.1.2 串行通信传输方式 2 1.1.3 数据纠错与检错 2 1.1.4 传输速率与距离 3 1.2 串行传输协议 4 1.2.1 异步传输协议 4 1.2.2 面向字符的同步传输协议 5 1.2.3 面向比特的同步传输协议 7 1.3 ...
  • 6 USART 一串口是系统与外界联系的重要手段我们有时需要使用上位机实现系统调试 及现场数据的采集...二串行异步通信主要特点 1 两个独立的移位寄存器输入输出寄存器 2 传输 7 位或 8 位数据可采用奇校验或偶校验或无
  • EDASOASOA简介事件驱动架构(Event-DrivenArchitecture,EDA)简介可以从两个方面来理解EDA:EDA是一种侧重于以生成/消费为基础的异步通信的架构模式。这主要对照于传统的基于线程的同步系统。EDA是一种以事件(event...
  • 1. 同步和异步 网络编程分为同步模式和异步模式: 同步模式是有一个数据块客户端发送过来,服务端就必须处理完才能处理下一个数据块; 异步模式是客户端发送的数据块放入缓存队列; 异步处理不阻塞,同步模式是阻塞...
  • 18.8 任务通信和同步 18.8.1 异步(松耦合)消息通信 18.8.2 带回复的同步(紧耦合)消息通信 18.8.3 不带回复的同步(紧耦合)消息通信 18.8.4 事件同步 18.8.5 信息隐藏对象上的任务交互 18.8.6 修正的并发...
  • FPGA之UART串口实验

    2021-01-06 21:16:23
    串口通信是将数据字节分成一位一位的形式在一条数据线上逐个传送,主要特点通信线路简单,但传输速度较慢。 串口通信分类: 同步串行通信:需要通信双方在同一时钟的控制下,同步传输数据; 异步串行通信:指...
  • 进程池实现

    2018-08-13 14:28:23
    本文是基于半同步/半异步进程池的实现,半同步/半异步模型主要是主进程监视listen套接字,然后发信号给子进程,子进程完成链接读写数据。 本文实现的进程池特点: 1.使用epoll实现i/0复用; 2.实现信号i/o...
  • 关于消息队列

    2016-05-27 12:53:00
    消息队列的主要特点异步处理,主要目的是减少请求响应时间解耦。所以主要的使用场景就是将比较耗时而且不需要即时(同步)返回结果的操作作为消息放入消息队列。同时由于使用了消息队列,只要保证消息格式不变,...

空空如也

空空如也

1 2 3 4 5 ... 7
收藏数 122
精华内容 48
关键字:

同步通信和异步通信主要特点