st9+系列单片机i2c总线驱动程序实现

st9+系列单片机i2c总线驱动程序实现

ID:9433944

大小:50.50 KB

页数:5页

时间:2018-04-30

st9+系列单片机i2c总线驱动程序实现_第1页
st9+系列单片机i2c总线驱动程序实现_第2页
st9+系列单片机i2c总线驱动程序实现_第3页
st9+系列单片机i2c总线驱动程序实现_第4页
st9+系列单片机i2c总线驱动程序实现_第5页
资源描述:

《st9+系列单片机i2c总线驱动程序实现》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、ST9+系列单片机I2C总线驱动程序实现

2、第1  目前I2C总线技术已为许多著名公司所采用,并广泛应用于视频、音频系统中。推广I2C总线技术将有助于提高我国单片机应用开发水平。意法半导体公司(SGS-THOMSON)是全球十大半导体制造商之一,其领先单片机产品ST9+系列是目前功能比较全面且支持通信协议较多的一款产品,支持包括I2C、USB在内的多种通信协议。本文以ST9+系列单片机中的ST92163为例,阐述其对I2C总线的支持方式,并给出在ST92163单片机上实现I2C总线协议的程序流程和方法。1ST9+系列单片机结构及其对I2C总线的支持1.1ST9+系列单片机

3、的结构和特点  ST92163单片机是ST9+系列单片机中的典型产品,500)this.style.ouseg(this)">如图1所示。本文以该款单片机为例介绍ST9+系列产品。该产品为8位/16位兼容单片机,片内含20KB的ROM和2KB的RAM,主频24MHz,拥有256个寄存器,最大内存寻址4MB,支持I2C、SPI以及USB在内的多种串行通信协议,在视频、音频等方面具有广泛的应用。其256个寄存器分为224个通用寄存器、16个系统寄存器和16个页寄存器。其中16个页寄存器对应64页,可通过改变当前页来切换不同功能的16个页寄存器。1.2ST9+系列单片机对I2

4、C总线的支持  ST9+支持2种模式的I2C总线,包括100kHz的标准I2C模式和400kHz的快速I2C模式。同时ST9+系列单片机也支持7位和10位2种长度的地址码,并采用DMA的方式使对单片机处理时间的占用降到最小。除此之外,ST9+为支持I2C总线协议还具备以下特征:内部并行总线与I2C串行总线的转换、总线上多主器件的支持和接收或者发送标志产生、发送或接收数据完毕标志产生、发送过程中错误检测以及支持错误发生后产生中断等。  针对主器件模式,ST9+系列单片机还增加了总线时钟产生、总线忙标志产生、开始位标志检测、总线仲裁丢失标志产生以及开始和结束标志产生等特征。

5、而针对从设备,ST9+也有相关特征支持,包括有停止位标志检测、设备地址编程、发送错误检测、数据发送或接收完毕标志产生和开始或结束错位检测等特征。  ST9+系列单片机中实现I2C总线协议的寄存器共有16个,如图2所示。其中初始化寄存器6个,包括I2C自地址寄存器I2COAR1和I2COAR2、地址调用寄存器I2CADR、时钟控制寄存器I2CCCR和I2CECCR以及控制寄存器I2CCR;数据发送和接收寄存器4个,包括数据寄存器I2CDR、控制寄存器I2CCR、状态寄存器I2CSR1和I2CSR2;500)this.style.ouseg(this)">I2C相关中断和D

6、MA寄存器7个,包括中断状态寄存器I2CISR、中断掩码寄存器I2CIMR、中断向量寄存器I2CIVR、接收DMA地址指针寄存器I2CRDAP、接收DMA事务计数寄存器I2CRDC、发送DMA地址指针寄存器I2CTDAP以及发送DMA事务计数寄存器I2CTDA。这16个寄存器均为页寄存器,并放在同一页中。  以上寄存器中,数据寄存器I2CDR、控制寄存器I2CCR、状态寄存器I2CSR1和I2CSR2是最基本的4个寄存器,通过这4个寄存器的设置可以实现基本的发送和接收数据的功能。这4个寄存器的具体情况如图3、4、5所示。  PE为外设使能位,ENGC为从设备模式使能位,

7、START为开始标志使能位,ACK为响应使能位,STOP为结束标志使能位,500)this.style.ouseg(this)">ITE为中断使能位。  EVF为事件标志位,ADD10为10位长度地址位,TRA为区别发送或接收状态位,BUSY为总线忙标志位,BTF为数据传输结束标志位,ADSL为从设备地址匹配标志位,M/SL为区别主从设备位,SB为开始标志位。ADDTX为地址应答标志位,AF为应答失败标志位,STOPF为从设备检测到停止标志位,ARLO为总线仲裁丢失标志位,BERR为总线忙错误标志位,GCAL为普通地址调用匹配标志位。I2C数据寄存器I2CDR为存放待发

8、数据或接收到数据的缓冲区,在下一个要发送或者接收的字节数据到来之前必须清空。2程序实现2.1编译工具500)this.style.ouseg(this)">  ST9+系列单片机I2C总线协议驱动程序采用ANSIC语言编写,使用GNU组织的GCC编译器编译、链接生成所需要的十六进制文件。  GCC编译器是自由软件组织发布的多平台支持的C语言编译器,ST9+系列单片机编程使用的GCC9版本,包括了用于C语言编译的CC9、用于汇编语言编译的GAS9、用于链接的LD9和宏汇编解释器TR9等模块。图6为GCC9编译、链接流程图。2.2程序设计及流

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。