ARM手记之芯唐M0系列
机模式的相应设置写入寄存器SPI_CNTRL。
c.如果SPI从机要发送一个字节的数据到SPI主机,则将所要发送的数据写入寄存器SPI_Tx0。
d.如果SPI从机只是要从外设主机接收一个字节的数据,不必管被传输的数据是什么,只需向寄存器SPI_TX0写入0xff。
e.使能GO_BUSY位(SPI_CNTRL[0]=1),等到外设的从机选择触发输入和串行时钟输入,以开始SPI接口的数据传输。
f.等到SPI中断发生,或检测GO_BUSY位直到被硬件自动清0。
g.从寄存器SPI_RX0[7:0]读出所接收到的一个字节的数据。
h.重复步骤c,继续其他数据的传输,或设置SSR[0]为0以停止外设。
17.I2S 控制器
I2S控制器由IIS协议与外部音频CODEC组成,两个8字的FIFO分别用于读与写通道,可以处理8~32位字大小。DMA控制器处理数据在FIFO与内存之间传输,两个DMA请求,一个用于发送,一个用于接收。
I2S 可工作于8位主机或从机,支持单声道和立体声的音频数据.支持I2S和MSB 校验数据格式.当缓冲超过可编程边界时,产生中断请求.
18.PS2设备控制器(PS2D)
PS/2 设备控制器为 PS/2通讯提供基本时序控制。在设备和主机之间的通讯CLK 和 DATA pins控制. 不同于 PS/2 键盘和鼠标设备控制器, 接收/传输代码需要固件进行代码转换成有意义的代码。主机发送到设备的数据是在上升沿读取,设备发送到主机的数据在上升沿之后被改变。可编程1~16 位传输缓冲 以减少CPU 干扰。支持双数据缓冲功能。
PS/2 设备具有 双向双向同步串行协议,当总线为 "Idle" 模式并且两条线都为高 (open-collector),该状态为设备允许开始 DATA 传输的唯一条件。主机在总线上有最终的控制权 ,比呢且任何时候都可以通过下拉CLK line禁止通讯。设备始终产生CLK信号,如果主机需要发送 DATA, 下拉CLK line 为低,禁止从设备进行通讯。主机随后将DATA拉低并且释放CLK,这是"Request-to-Send" 状态,通知设备开始发送CLK脉冲。所有数据每次传输1字节,每字节包括11-12位:1 开始位(一直为 0);8 数据位(先最低位);1 奇偶位(odd parity);1 停止位(一直为1);1 应答位(主机~设备通讯)。
设备向主机传输,设备应用于连续的 11-位 架构:1 个开始位(始终为 0);8 数据位(最高位最先传输);1奇偶位(odd parity);1停止位(一直为1)。
主机向设备传输:首先,PS/2 设备一直产生 CLK 信号,如果主机希望发送DATA, 首先需设定CLK 和 DATA在 "Request-to-send" 状态:拉低CLK 至少100 us 禁止通讯;应用 "Request-to-send" 拉 DATA 为低, 释放CLK。设备在不超过10 ms时间内需不间断的监控状态,当设备监控到此状态,将开始产生CLK 信号和8位DATA位 1 位停止位。当CLK line为低时,主机改变DATA line,当CLK为高时设备读数据。停止位接收后,设备发出应答信号,使DATA line 为低 并且产生CLK 脉冲。
写PS2TXDATA0 寄存器将触发设备和主机通讯,在向TX FIFO传输数据前,S/w 需定义TXFIFO 长度。写PS2TXDATA0 寄存器后100us,第一个字节的start bit 才会被传送到总线上。
19.局域控制网络总线(CAN Bus)
区域控制器 (CAN) 为串行通讯协议 具有多主机(multi-master) 和高效率实时控制功能,安全性能高 成本低,应用于高速网络,在汽车电子, 车身控制, 传感器, 防滑系统等。CAN 连接速度可达 1Mbit/s。CAN 2.0B 协议兼容。
总线上信息发送为固定模式.当总线空闲时, 任何的连接单元可进行数据传递.
1. A DATA FRAME 数据从传输到接收的运输.
2. A REMOTE DATA FRAME 通过总线单元向传输DATA FRAME IDENTIFIER发送请求.
3. An ERROR FRAME 传输通过 任何单元侦测总线 error.
4. An OVERLOAD FRAME 应用于提供额外延时 在当前和随后 DATA 或 REMOTE FRAMES 之间.
ARM芯唐M0系 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)