异步通信

所谓异步通信,是指数据传送以字符为单位,字符与字符间的传送是完全异步的,位与位之间的传送基本是同步的。

 


异步串行通信的特点可以概括如下

1)以字符为单位传送信息

2)相邻两字符间的间隔是任意长

3)因为一个字符中的比特们长度有限,所以需要的接收时钟和发送时钟只要相近就可以

4)异步方式的特点简单地说就是:字符间异步,字符内部各位同步

 


异步串行方式的数据格式

1)1位起始位,规定为低电平0

2)5~8位数据位,即要传送的有效信息

3)1位奇偶校验位

4)1~2位停止位,规定为高电平1


同步串行

所谓同步通信,是指数据传送是以数据块(一组字符)为单位,字符与字符之间、字符内部的位与位之间都同步。

 

同步串行通信的特点可以概括为

1)以数据块为单位传送信息

2)在一个数据块(信息帧)内,字符与字符间无间隔

3)因为一次传输的数据块中包含的数据较多,所以接收时钟与发送时钟严格同步,通常要有同步时钟

 

同步串行方式的数据格式

1)两个同步字符作为一个数据块(信息帧)的起始标志

2)n个连续传送的数据

3)两个字节循环冗余校验码(CRC)


例子

 #include "2410lib.h"

 void  uart0_test(void);

 int main(int argc,char **argv)

 {

    sys_init();

    uart_printf("\n Embest Arm S3CEB2410 Evaluation Board\n");

 while()

    {

        uart0_test();

    }        

 }

 void uart0_test()

 {

 char cInput[];

    UINT8T ucInNo=;

 char c;

    uart_init(,,);

    uart_printf("\n UART0 Communication Test Example\n");    

    uart_printf(" Please input words, then press Enter:\n");

 while()

    {

        c=uart_getch();

        uart_printf("%c",c);

 if(c!='\r')          //enter key

            cInput[ucInNo++]=c;

 else

        {

            cInput[ucInNo]='\0';

 break;

        }

    }

    delay();    

    uart_printf("\n The words that you input are: \n %s\n",cInput);      

    uart_printf(" end.\n");  

 }

【ARM】串行通信的更多相关文章

  1. 20155206赵飞 基于《Arm试验箱的国密算法应用》课程设计个人报告

    20155206赵飞 基于<Arm试验箱的国密算法应用>课程设计个人报告 课程设计中承担的任务 完成试验箱测试功能1,2,3 . 1:LED闪烁实验 一.实验目的  学习GPIO原理  ...

  2. 20155235 王玥 《基于Arm实验箱的接口测试和应用》 课程设计报告

    20155235 王玥 <基于Arm实验箱的接口测试和应用> 课程设计报告 一.设计方案及可行性分析 熟悉 Linux 开发环境 多线程应用程序设计 串行端口程序设计 中断实验 二.详细设 ...

  3. 基于ARM的射频识别读卡器电路设计

    http://tech.yktworld.com/201010/201010032128115666.html 来源:一卡通世界      作者:江小平,李中捷,余晓峰      2010-10-3 ...

  4. 东芝半导体最新ARM开发板——TT_M3HQ开箱评测

    前言 最近从面包板社区申请到一块东芝最新ARM Cortex-M3内核的开发板--TT_M3HQ,其实开发板收到好几天了,这几天一直在构思怎么来写这第一篇评测文章,看大家在社区也都发了第一篇评测,我也 ...

  5. ViperX 300 Robot Arm 机械臂 “5自由度和360°全方位旋转”

  6. iOS逆向工程之Hopper中的ARM指令

    虽然前段时间ARM被日本软银收购了,但是科技是无国界的,所以呢ARM相关知识该学的学.现在看ARM指令集还是倍感亲切的,毕竟大学里开了ARM这门课,并且做了不少的实验,当时自我感觉ARM这门课学的还是 ...

  7. ARM的栈指令

    ARM的指令系统中关于栈指令的内容比较容易引起迷惑,这是因为准确描述一个栈的特点需要两个参数: 栈地址的增长方向:ARM将向高地址增长的栈称为递增栈(Descendent Stack),将向低地址增长 ...

  8. ARM CPU大小端

    ARM CPU大小端: 大端模式:低位字节存在高地址上,高位字节存在低地址上 小端模式:高位字节存在高地址上,低位字节存在低地址上 STM32属于小端模式,简单的说,比如u32 temp=0X1234 ...

  9. 基于ARM处理器的反汇编器软件简单设计及实现

    写在前面 2012年写的毕业设计,仅供参考 反汇编的目的 缺乏某些必要的说明资料的情况下, 想获得某些软件系统的源代码.设计思想及理念, 以便复制, 改造.移植和发展: 从源码上对软件的可靠性和安全性 ...

随机推荐

  1. Axure快速原型教程01--原型说明下载和安装

          Axure是一个快速画原型的工具         什么是原型?         估计进来的朋友应该都清楚,原型通俗来讲,不仅仅是在软件开发中使用,在很多行业中也需要用的,比如服装设计,建筑 ...

  2. Wget用法、参数解释

    wget功能的强大就不用多说了,在高手手里,它就像是个无往不利的杀人利器,下面是转载的一篇Wget用法.参数解释的比较好的一个文章,当然最好的老师还是man wget 是一个从网络上自动下载文件的自由 ...

  3. 【DeepLearning】Exercise:Convolution and Pooling

    Exercise:Convolution and Pooling 习题链接:Exercise:Convolution and Pooling cnnExercise.m %% CS294A/CS294 ...

  4. memcached内存管理机制[未整理]

    memcached默认采用的是Slab Allocator的机制分配管理内存的,在此之前,内存的分配是通过对所有的记录简单地进行malloc和free来进行的,但这种方式容易造成很多内存碎片,加重操作 ...

  5. Docker 简单查看name和ip

    原文地址:https://blog.csdn.net/wen_1108/article/details/78282268 查看docker name: sudo docker inspect -f=' ...

  6. Html5 reset表 2015年1月7日15:02:14

    /* HTML5 Reset :: style.css ---------------------------------------------------------- We have learn ...

  7. Android NDK r9的配置与使用

    Android NDK 配置: 网上有很多教程,但大部分是旧版本的内容,最新版本的已经改变,为了让大家少走弯路,在这里针对r9的配置进行记录分享. 要玩NDK,你或多或少要用到以下一些东西,所以先做一 ...

  8. springboot JSP 404

    up vote 1.  mvc # 页面默认前缀目录spring.mvc.view.prefix=/WEB-INF/view/# 响应页面默认后缀spring.mvc.view.suffix=.jsp ...

  9. 我是跨域的JSONP

    1.出现原因:因为web中的同源策略(域名,协议,端口号)限制了跨域访问.   2.区别于json (个人理解)json是数据交换格式,jsonp是数据通信中的交互方式   3.jsonp的get与p ...

  10. LINQ中in的实现方法-LINQ To Entities如何实现查询 select * from tableA where id in (1,2,3,4)

    如果用in是字符串类型无问题,可以直接这样用 ).Where(entity => urls.Contains((entity.NavigateUrl == null ? "" ...