ARM裸板驱动开发之串行通信协议

    最新打算学习基于内核驱动开发方面的知识,在看书的过程中发现,除了要遵循内核的开发规则外,具体实现部分和裸机开发差异不大,由于研究生期间做过单片机的开发,但毕竟ARM裸机开发要比单片机开发更复杂的多,因此打算从裸机开发开始重新学习一遍。

接下来就三星的S3C2440A为平台开始接下来的学习过程,该芯片的CPU核是ARM920T。下图是该SOC的结构框图

 

一、如何学习通信协议

       众所周知,每种通信方式的实现都要遵循其通信协议,如低速的UART、I2C、SPI,高速的PCIe、MII等,那么如何学习一种通信协议呢,下面以串行通信协议为例子介绍一种学习思路。

    1. 了解其物理实现,即物理结构。如有多少引脚,每个引脚的功能

    2. 了解通信协议内容

(1)总线上空闲&忙的状态

(2)start和stop状态

 (3)数据传输时高位在前还是低位在前

(4)如何校验数据的准确性

(5)发送方如何发送,接收方如何接收

3. 软件编程实现

二、UART串行通信协议

串行通信协议主要包括:uart、I2C、SPI等,我们平时所说的uart串口通信其实只是串行通信协议中的一种。

UART:通用异步收发传输器(Universal Asynchronous Receiver/Transmitter),

1. 物理连接

UART只有两个线TXD和RXD

2. 通信协议内容

(1)Tx == 1 时总线空闲

(2)1bit 0:start信号

(3)低位在前(默认是小端序,低地址对应低字节)

(4)校验位:奇偶校验

(5)数据发送位数5、6、7、8

3. 软件编程实现

裸机开发重点在于对寄存器的配置,首先要通过阅读芯片开发手册了解对应模块有哪些寄存器,内部实现原理。然后就是两大步骤:对寄存器进行初始化;实现具体功能。

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值