当前位置: 首页 > 范文大全 > 公文范文 >

基于ARM9的IIC串行通信

时间:2022-03-24 09:12:31  浏览次数:

摘要:该文先是简单介绍了ARM技术的发展和现状,然后重点介绍了S3C2410的IIC总线,阐述了对IIC总线控制器的使用方法,最终实现了对EEPROM AT24C04的读写操作。

关键词:IIC总线;接口;读/写

The Serial Communication of IIC Based on ARM9

CHEN Chang-sheng

(Henan Economy and Trade Vocational College, Zhengzhou 450053, China)

Abstract: The paper firstly introduces the development and actuality of the ARM technology, and secondly explains the IIC bus of S3C2410 importantly, expounds the usage of the IIC"s bus controller, achieve the purpose of reading and writing to EEPROM AT24C04 finally.

Key words: IIC bus; interface; reading/writing

1 概述

1.1 ARM的发展历史

以嵌入式计算机为技术核心的嵌入式系统是继网络技术之后,又一个IT领域新的技术发展方向。由于嵌入式系统具有体积小、性能强、功耗低、可靠性高以及面向行业具体应用等突出特征,目前已经广泛地应用于军事国防、消费电子、信息家电、网络通信、工业控制等各个领域。嵌入式的广泛应用可以说是无所不在。就我们周围的日常生活用品而言,各种电子手表、电话、手机、PDA、洗衣机、电视机、电饭锅、微波炉、空调器都有嵌入式系统的存在,如果说我们生活在一个充满嵌入式的世界,是毫不夸张的。

嵌入式系统组成的核心部件是各种类型的嵌入式处理器/DSP。随着嵌入式系统不断深入到人们生活中的各个领域,嵌入式处理器也进而得到前所未有的飞速发展。目前据不完全统计,全世界嵌入式处理器/DSP的品种总量已经超过1500多种,流行体系结构也有近百个系列,现在几乎每个半导体制造商都生产嵌入式处理器/DSP,越来越多的公司有自己的处理器/DSP设计部门。ARM系列处理器核是英国先进RISC机器公司(Advanced RISC Machines,ARM)的产品。ARM公司自成立以来,一直以IP(Intelligence Property)提供者的身份向各大半导体制造商出售知识产权,而自己从不介入芯片的生产销售,它提供一些高性能、低功耗、低成本和高可靠性的RISC处理器核、外围部件和系统级芯片的应用解决设计方案。

ARM处理器核具有低功耗、低成本等卓越性能和显著优点,越来越多的芯片厂商早已看好ARM的前景。ARM处理器核得到了众多的半导体厂家和整机厂商的大力支持,在32位嵌入式应用领域获得了巨大的成功,如Intel、Motorola 、IBM、NS、Atmel、Philips、NEC、OKI、SONY、SAMSUNG等世界上几乎所有的半导体公司获得ARM授权,开发具有自己特色的基于ARM的嵌入式系统芯片。目前非常流行的ARM芯核有ARM7TDMI,ARM720T,ARM9TDMI,ARM920T,ARM940T,ARM946T,ARM966T,XScale等,本项目中用到的ARM9CPU就是ARM940T。

ARM公司具有完整的产业链,ARM的全球合作伙伴主要为半导体和系统伙伴、操作系统伙伴、开发工具伙伴、应用伙伴、ARM技术共享计划(ATAP),ARM的紧密合作伙伴已发展为122家半导体和系统合作伙伴、50家操作系统合作伙伴,35家技术共享合作伙伴,并在2002年在上海成立中国全资子公司。早在1999年,ARM就已突破1.5亿个,市场份额超过了50%,而在最新的市场调查表明,在2001年度里,ARM占据了整个32、64位嵌入式微处理器市场的75%,在2002年度里,占据了整个32、64位嵌入式微处理器市场的79.5%,全世界已使用了20多亿个ARM核。ARM已经成为业界的龙头老大,“每个人口袋中装着ARM”,是毫不夸张的。因为几乎所有的手机、移动设备、PDA几乎都是用具有ARM核的系统芯片开发的。

1.2 ARM9开发工具

用户选用ARM处理器开发嵌入式系统时,选择合适的开发工具可以加快开发进度,节省开发成本,用户在建立自己的基于ARM嵌入式开发环境时,可供选择的开发工具是非常多的,目前世界上有几十多家公司提供不同类别的ARM开发工具产品,根据功能的不同,分别有编译软件、汇编软件、链接软件、调试软件、嵌入式操作系统、函数库、评估板、JTAG仿真器、在线仿真器等。有些工具是成套提供的,有些工具则需要组合使用。本项目中,我们使用一种比较流行的ARM开发工具RealViewMDK集成开发环境以及ULink2仿真器等。

MDK(Microcontroller Development Kit)是Keil公司(An ARM Company)开发的ARM开发工具,是用来开发基于ARM核的系列微控制器的嵌入式应用程序的开发工具。它适合不同层次的开发者使用,包括专业的应用程序开发工程师和嵌入式软件开发的入门者。MDK包含了工业标准的C编译器、宏汇编器、调试器、实时内核等组件,支持所有基于ARM的设备,能帮助工程师按照计划完成项目。

2 IIC总线接口

2.1 IIC接口以及EEPROM

IIC总线为同步串行数据传输总线,其标准总线传输速率为100kb/s,增强总线可达400kb/s。总线驱动能力为400pF。S3C2410X RISC微处理器能支持多主IIC总线串行接口。图1为IIC总线的内部结构框图。

IIC总线可构成多主和主从系统。在多主系统结构中,系统通过硬件或软件仲裁获得总线控制使用权。应用系统中IIC总线多采用主从结构,即总线上只有一个主控节点,总线上的其它设备都作为从设备。IIC总线上的设备寻址由器件地址接线决定,并且通过访问地址最低位来控制读写方向。目前,通用存储器芯片多为EEPROM,其常用的协议主要有两线串行连接协议(IIC)和三线串行连接协议。带IIC总线接口的EEPROM有许多型号,其中AT24CXX系列使用十分普遍。产品包括AT2401/02/04/08/16等,其容量(字节数x页)分别为128x8/256x8/512x8/1024x8/2048x8,适用于2V~5V的低电压的操作。具有低功耗和高可靠性等优点。

AT24系列存储器芯片采用CMOS工艺制造,内置有高压泵,可在单电压供电条件下工作。其标准封装为8脚DIP封装形式,如图2。

各引脚的功能说明如下:

SCL:串行时钟

遵循ISO/IEC7816同步协议;漏极开路,需接上拉电阻。在该引脚的上升沿,系统将数据输入到每个EEPROM器件,在下降沿输出。

SDA:串行数据线

漏极开路,需接上拉电阻。双向串行数据线,漏极开路,可与其他开路器件“线或”。

A0、A1、A2:器件/页面寻址地址输入端

在AT24C01/02中,引脚被硬连接;其他AT24Cxx均可接寻址地址线。

WP:写保护

低电平时可对整片空间进行读写;高电平时不能读写受保护区。

Vcc/GND:输入+5V的工作电压。

2.2 IIC总线的读写控制逻辑

IIC总线的读写状态有以下几种:

开始条件(START_C):在开始条件下,当 SCL为高电平时,SDA由高转为低。

停止条件(STOP_C):在停止条件下,当 SCL为高电平时,SDA由低转为高。

确认信号(ACK):在接收方应答下,每收到一个字节后便将SDA电平拉低。

数据传送(Read/Write):IIC总线启动或应答后SCL高电平期间数据串行传送;低电平期间为数据准备,并允许SDA线上数据电平变换。总线以字节(8bit)为单位传送数据,且高有效位(MSB)在前。IIC数据传送时序如图3所示。

2.3 EEPROM读写操作

1) AT24C04结构与应用简述

AT24C04由输入缓冲器和EEPROM阵列组成。由于EEPROM的半导体工艺特性写入时间为5-10ms,如果从外部直接写入EEPROM,每写一个字节都要等候5-10ms,成批数据写入时则要等候更长的时间。具有SRAM输入缓冲器的EEPROM器件,其写入操作变成对SRAM缓冲器的装载,装载完后启动一个自动写入逻辑将缓冲器中的全部数据一次写入EEPROM阵列中。对缓冲器的输入称为页写,缓冲器的容量称为页写字节数。AT24C04的页写字节数为8,占用最低3位地址。写入不超过页写字节数时,对EEPROM器件的写入操作与对SRAM的写入操作相同;若超过页写字节数时,应等候5-10ms后再启动一次写操作。由于EEPROM器件缓冲区容量较小(只占据最低3位),且不具备溢出进位检测功能,所以,从非零地址写入8个字节数或从零地址写入超过8个字节数会形成地址翻卷,导致写入出错。

2) 设备地址(DADDR)

AT24C04XX的器件地址是1010。

3) AT24CXX的数据操作格式

在IIC总线中对AT24C04内部存储单元读写,除了要给出器件的设备地址(DADDR)外还须指定读写的页面地址(PADDR),两者组成操作地址(OPADDR)如下:

1010 A2 A1– R/W (-为无效)

Embest ARM教学系统中引脚A2A1A0为000,因此系统可寻址AT24C04全部页面共4KB字节。按照AT24C04器件手册读写地址(ADDR=1010 A2 A1– R/W)中的数据操作格式如下:

写入操作格式

写任意地址ADDR_W

图4 任意写一个字节

从地址ADDR_W起连续写入n个字节(同一页面)

图5 写n个字节

读出操作格式

读任意地址 ADDR_R

图6 任意读一个字节

从地址ADDR_R起连续读出n个字节(同一页面)

图7 读n个字节

在读任意地址操作中除了发送读地址外还要发送页面地址(PADDR),因此在连续读出n个字节操作前要进行一个字节PADDR写入操作,然后重新启动读操作;注意读操作完后没有ACK。

2.4 S3C2410X处理器IIC接口

2.4.1 S3C2410X IIC接口

S3C2410X处理器为用户进行应用设计提供了支持多主总线的IIC接口。处理器提供符合IIC协议的设备连接的双向数据线IICSDA和IICSCL,在IICSCL高电平期间,IICSDA的下降沿启动上升沿停止。S3C2410X处理器可以支持主发送、主接收、从发送、从接收四种工作模式。在主发送模式下,处理器通过IIC接口与外部串行器件进行数据传送,需要使用到如下寄存器:

IIC总线控制寄存器IICCON

如右表1所示。

注意:

1) 在Rx模式下访问EEPROM时,为了产生停止条件,在读取最后一个字节数据之后不允许产生ACK信号。

2) IIC总线上发生中断的条件:当一个字节的读写操作完成时;当一个通常的通话发生或者是从地址匹配上时;总线仲裁失败时。

3) 如果IICON[5]=0,IICON[4]就不能够正常工作了。因此,建议务必将IICCON[5]设置为1,即使你暂时并不用IIC中断。

IIC总线状态寄存器IICSTAT(地址:0x54000004)

如右表2所示。

IIC总线地址寄存器 IICADD(地址:0x54000008)

IIC总线发送接收移位寄存器IICDS(地址:0x5400000C)

2.4.2 使用S3C2410X IIC 总线读写方法

单字节写操作(R/W=0) Addr:设备、页面及访问地址

同一页面的多字节写操作(R/W=0) OPADDR:设备及页面地址(高7 位)

单字节读串行存储器件(R/W=1) Addr:设备、页面及访问地址

同一页面的多字节读操作(R/W=1) Addr:设备、页面及访问地址

P&R =OPADDR_R=1010xxx(字节高7 位)R:重新启动读操作

3 软硬件设计

3.1 软件设计

本项目的目的就是将0~F这16个数按顺序写入到EEPROM(AT24C04)的内部存储单元中,然后再依次将他们读出,并通过实验板的串口UART0输出到在PC机上运行的Windows自带超级终端上。在本项目中,EEPROM是被作为IIC总线上的从设备来进行处理的,其工作过程涉及到IIC总线的主发送和主接收两种工作模式。图8和图9详细说明了这两种工作模式下的程序流程。

图8IIC主发送程序设计流程图(S3C2410X) 图9IIC主接收程序设计流程图(S3C2410X)

3.2 电路设计

在本项目中,使用S3C2410X处理器内置的IIC控制器作为IIC通信主设备,AT24C04 EEPROM为从设备。电路设计如图10所示。

4 结束语

以上简单介绍了基于ARM9的芯片S3C2410中的IIC总线的基本使用方法,并且实现了对EEPROM AT24C04的读写操作。

参考文献:

[1] 李佳.ARM系列处理器应用技术完全手册[M].北京:人民邮电出版社,2006.

[2] 刘洪涛.嵌入式系统技术与设计[M].北京:人民邮电出版社,2008.

[3] 孙天泽.嵌入式设计及Linux驱动开发指南——基于ARM9处理器[M].北京:电子工业出版社,2007.

[4] 田泽.ARM9嵌入式开发实验与实践[M].北京:北京航空航天大学出版社,2006.

推荐访问: 通信 ARM9 IIC