I2C总线的单片机C语言实现及其应用

发布时间:2014-7-7 16:14    发布者:educn68
关键词: 单片机 , I2C总线 , C语言
1 I2C总线概述   

I2CIntelIntegrated Circuit)总线是荷兰的Philips公司于八十年代初推出的一种芯片间串行总线扩展技术。它用两根线(数据线SDA、时钟线SCL)可完成总线上主机与器件的全双工同步数据传送,可极方便地构成多主机系统和外围器件扩展系统。I2C总线支持所有NMOSCMOSTTL等工艺制造的器件,其上所有的节点都连到同名的SDASCL上。I2C总方法,数据传送都有相同的操作模式,接口电器特性相同且独立,可在系统供电情况下从系统中移去或增加IC芯片,有I2C接口的外围器件都有应答能力,读写片内单元时有地址自动加1功能,易实现多个字节的自动操作。近年来,国际上有关公司制造了多达几百种的I2C总线器件,如8051系列单片机8XC752LCD驱动器、RAMIO接口等芯片都使用了I2C总线接口。随着数字技术的发展,I2C总线控制系统已经应用于越来越多的电子产品。

2 I2C总线的数据传输

21 接口特性  

I2C总线接口的数据线SDA和时钟线SCL必须经过上拉电阻接到正电源VDD上,各个I2C接口电路输出端必须是漏极开路或集电极开路,以便完成“线与”的功能。I2CSDASCL都是双向传输线,当总线空闲时,此两线都是“1”(高电平)。由于不同的器件都会接到I2C总线,逻辑的“0”(低)及“1”(高)的信号电平取决于VDD电压。总线上能连接的最大器件数取决于其电容容限400PF

22 I2C总线上的传输时序   

I2C总线上每传输一位数据都有一个时钟脉冲相对应,在标准模式下可达100 kbits,高速模式下可达400kbits,总线上依据器件功能不同可建立简单的主/从关系(masterslave),只有带CPU的器件才可成主控器。图1I2C总线一次完整的数据传输。SCL为高期间,SDA状态必须稳定,SCL为低时才允许SDA状态变化。SCL保持高电平期间,SDA出现由高至低的转换将启动I2C总线,出现由低至高的转换将停止数据传输。起始和终止信号通常由主控器产生。I2C总线的信号时序有严格规定,本应用采用标准模式,SCL低电平周期≥47μsSCL高电平周期≥40μsSTARTSTOP之间的总线空闲时间≥47μs。   

I2C 总线上传送的每个字节必须为8位,启动和停止之间可传输的数据字节数不受限制。采用串行传送,首先传送最高位,每传送一个字节后必须跟一个应答位。主控器产生应答所需的时钟脉冲期间,发送器必须释放数据线(SDA为高),以便接收器输出应答位。低电平为应答信号,高电平为非应答信号。非应答信号是当主控器作为接收器时,收到最后一个字节数据后,必须发送一个非应答信号给被控发送器,使被控发送器释放数据线,以便主控器发停止信号,终止数据传送。当从器件不能再接收字节时也会出现非应答 信号这种情况。   

I2C总线上的器件一般有两个地址:受控地址和通用广播访问地址,每个器件有唯一的受控地址用于定点通信,而相同的通用广播访问地址则用于主控方同时对所有器件进行访问。如图1所示,起始信号后主控器发送的第一个字节就是被读器件的受控地址,称作寻址字节。寻址字节由高7位地址和最低1位方向位组成,方向位为“0”表明主控器对被控器的写操作(W),方向位为 “1”表明对被控器的读操作(R)。总线上每个器件在起始信号后都把自己的地址与寻址字节的前7位相比较,如相同则器件被选中,产生应答,并根据读写位决定在数据传送中是接收还是发送。无论是主发、主收还是从发、从收,都是由主器件控制,数据传送完后,主控器都必须发停止信号。

3 I2C总线的C51语言实现   

C51语言是针对Intel8位单片机MCS51系列而开发的、具有一般C语言特点的高级编程语言。从1985年至今,有许多公司推出 51系列的C语言编译器,其中以Franklin C51编译器在代码生成方面较为领先,它可生成最少的代码,支持浮点和长整数、重入和递归。头文件reg51h中包含了51单片机的特殊功能寄存器(SFR)的字节定义与位定义。为了与具有I2C总线接口的51单片机兼容,可在程序开始处定义单片机的P16P17作为I2C总线的SCLSDA信号,实际中也可用其它的IO引脚作为SCLSDA信号。C51语言中只要用赋值语句”=”就可实现IO口某位的数据输出和读入。现将I2C总线底层读写函数接口及功能列举如下,它可用于没有内部I2C接口的51系列单片机与I2C总线器件通信。 #includereg51h> /*全局符号定义*/ #define HIGH1 define LOW 0 define FALSE0 define TRUE1 define time 1 define uchar unsigned char   #define uint unsigned int sbit SCLP16sbie SDAP171)函数原型:void delayuchar nu m)  功  能:用for()循环提供延时。在实际应用中可依具体情况改变传入参数,但必须满足I2C总线时序中对SCL高、低电平周期的要求,本应用中取1,调用形式为delaytime)。 2)函数原型:void startvoid)  功  能:提供I2C总线工作时序中的起始位,在SCLHIGH期间,SDA出现由高到底的转变,返回前将SCL拉低,允许数据变化,准备传输。其中调用函数13)函数原型:void stopvoid)  功  能:函数提供I2C总线工作时序中的起始位,在SCLHIGH期间,SDA出现由低到高的转变。其中调用函数14)函数原型:void sendbyteuchar bucharerror)    功  能:在时钟作用下,将入口参数b8位数据由高至低通过SDA线发送,并读回应答信号,存于指针变量*error中。其中调用函数1235)函数原型:void readbyteucharbbit Ack)  功  能:函数在时钟作用下接收8位数据,存于*b中,先接收的为高位,并发送应答信号(Ack0),当接收到最后一字节时发送非应答(Ack1)。其中调用函数1236)函数原型:void sendnbyteucharinfouint nuchar addressucharfault)  功  能:向I2C器件连续发送n个数据字节,数据存于数组info[]中,address为器件受控地址,末位为0(写),n个数据的地址可作为数据字节发送,或设置地址自动加减功能。*fault存收到的应答位。其中调用函数147)函数原型:void receive_n_byteucharinfouint nuchar addressucharfault)  功  能:从I2 C器件连续接收n个字节的数据,存于数组info[]中,address为器件地址,本函数保证器件地址末位是1(读),n个数据的器件内地址可作为数据字节发送,或设置地址自动加减功能。收最后一字节时发非应答信号1。*fault存收到的应答位。其中调用函数15。   以下仅以sendbyte()函数原型为例说明C51如何具体实现I2C总线的发送: void sendbyteuchar bucharerror) {int countbit data_bit; *error0forcount7count>=0count--) {data_bit=(bit)(b0x80); bb<<1; /*送数据位,产生时钟脉冲*/ SDAdata_bitSCLLOWdelaytime); SCLHIGHdelaytime); SCLLOWdelaytime); } /*释放数据线,产生时钟脉冲,读回应答*/
SDAHIGH
SCLLOWdelaytime); SCLHIGHdelaytime); *error=(ucharSDA; /*释放数据线,时钟置低*/ SDAHIGHSCLLOWdelaytime);}

4 I2C总线用于HDTV数字地面接收机   

数字高清晰度电视HDTVHigh Definition Television)是继黑白电视和彩色电视之后的第三代电视系统,与目前市场上的电视相比,其水平和垂直两个方向的图像质量(分辨率)提高一倍以上,在使用大屏幕显示器或近距离观看时其图像细腻逼真,无闪烁感和粗糙感,质量与35mm电影相当,再配以数字环绕音响,使收视效果大幅度提高。HDTV 节目全部采用数字方式制作、发送和接收,使图像质量接近演播室。同时,数字电视系统还能够提供多种业务,实现交互、数据广播和计算机联网等功能。美国于 199811月率先正式开播数字HDTV信号。我国从1996年启动国家重大产业工程项目HDTV功能样机系统研究开发工程,已成功在50周年国庆时进行了数字电视试播。   

HDTV数字地面接收系统以欧洲的DVBT Digital Video Broadcasting Terrestrial)为标准,完成信道解调解码,输出标准的MPEG2码流,由于采用了COFDMCoded Orthogonal Frequency Division Multiplexing)编码正交频分复用技术,能有效对抗多经传播和同频干扰。本接收机的主要特点是采用带有I2C总线接口的L64系列芯片,AT89C52通过I2C总线完成对L64芯片内寄存器的读写操作和监控,与PC配合实现基于参数配置、模式转换、状态读取的调试功能。结构简单,调试方便。信道解调解码的硬件基本组成如图2(未画出上拉电阻)。

5 结束语

随着广播电视技术迅速走向数字时代,HDTV在今后五年逐步在世界范围走向市场成为可能。I2C总线技术应用于HDTV数字地面接收机中,用8位单片机对接收机的状态进行控制,不仅减少了总线数量,提高了可靠性,而且还较大降低了成本。在实际使用时,可加上键盘、显示电路及相应程序,或用PC通过RS232口与单片机通信,进行调试。本应用已用于我国HDTV功能样机系统研究开发工程。 由衷地感谢导师葛建华教授的指导和帮助。
本文地址:https://www.eechina.com/thread-130597-1-1.html     【打印本页】

本站部分文章为转载或网友发布,目的在于传递和分享信息,并不代表本网赞同其观点和对其真实性负责;文章版权归原作者及原出处所有,如涉及作品内容、版权和其它问题,我们将根据著作权人的要求,第一时间更正或删除。
powerpeng 发表于 2014-9-30 11:30:16
学习了!谢谢!
asasq221 发表于 2014-10-15 13:29:41
最新CAX/EDA/CFD/GIS/光学/化工/液压软件资源网
阳光软件园
所有软件资料都随时更新,急需软件可以去看看,基本上能找到你想要的!

zhangqg.51.net

cax2one.3322.org

e-mail:
even2one@vip.sina.com;even2one@sohu.com

将以上任意链接连接起来输入IE 窗口即可进入网站

下面是一部分软件,更多软件在我们的软件列表,如需要请到列表中去找!

ACTRAN v14.0 Win32_64.&.Linux-ISO 3DVD

Agilent.IC-Cap.v2008-ISO 1CD

AMESim/AMESet R9 1DVD(液压传动系统高级建模与仿真环境)

AMETank v7.6 Windows 1CD(储罐设计软件)

Analytical.Graphics.STK.Pro.v10.0 2DVD(先进的宇宙航天分析工具,专为航天和防御专业人员设计)

AnyCASTING.v4.0.Win32_64-ISO 1CD

ASAP Pro 2009 V1R1 1CD

ASAP 9CD(正版光源库)

Aspen Technology AspenONE Suite v8.6 Win7_8-ISO 3DVD

AutoForm R2 Plus v4.4 Final-ISO 1DVD

AVEVA Marine 12.1 SP2.2 1DVD(最先进的船舶设计软件)

AVL.Workspace.Suite.2013.0.Win32_64.&.Linux-ISO 3DVD

AVL CRUISE 2011.3 Win32_64-ISO 1CD

AVL.Fire.2013.0.Win32_64.&.Linux32_64-ISO 4DVD

AVL.SWIFT.v3.1.1-ISO 1CD

B&K PULSE v12.5-ISO 2CD(振动分析软件)

Bentley AutoPIPE Vessel (Microprotol) V8i v33.01.00.11 1CD

CAESAR II 2013 R1 v6.10 WinXP_7-ISO 1DVD(管道应力分析软件)

CAM-TOOL v4.0-ISO 1DVD(简/繁体中文版)

CarSim v8.1 Build 8141-ISO 1CD

CFDRC v2008-ISO 1CD

Code-V 10.4 SP1-ISO 1CD

Coade CADWorx 2014-ISO 1CD

CFturbo v9.2.5 1CD

Design Data SDS/2 v7.025 1CD

Deform.2D/3D.v10.2-ISO 1CD

DNV Phast v6.7-ISO 1DVD(石化事故后果模拟软件)

DNV Phast Risk v6.7-ISO 1DVD(原名Safeti, 现在更名为Phast Risk)

Drillbench Suite v6.1 1CD(钻井作业设计及规划软件)

Drillbench Cemcalc v3.9 1CD(动态固井设计分析软件)

ESI.SysWeld.2010.v12.0.Win32_64-ISO 1DVD

ESI Welding Simulation Suite(PAM-Assembly+Weld Planner) 2010.0 1DVD
ETA.VPG.v3.3.WiNNT2K 1CD(完全破解版)

FLOW-3D.v10.1.1.Win32_64.&.Linux32_64 2CD

Fraunhofer.SCAI.MpCCI.v4.0 1DVD

FRI Device Rating Program v2.3.3 1CD(美国精馏公司开发的化工软件,可用于塔板

(筛板, 浮阀)的严格的水力学计算)

GH-Bladed v3.67 1CD

GMI Imager v5.6 1CD

GMI PressCheck v2.5 1CD

GMI SFIB v5.4 1CD

GT-Suite 7.2 Build 1 Win32_64 & Lniux 1DVD(发动机模拟分析软件)

HTFS.Software.v7.1-ISO 1DVD

HTRI Exchanger Suite v6.0 SP3 Full-ISO 1CD

HydroComp.NavCad.2009.v9.05 1CD

HydroComp Propcad 2005 Full 1CD
HydroComp PropExpert 2005 Full 1CD

HyperMILL v2009.1 Multilanguage-ISO 1DVD

iMOLD v12 SP0-ISO  1CD(solidworks专用模具设计软件)

Intec.Simpack.v9.6.Win32_64.&.Linux32_64-ISO 4CD

Intergraph PDS v2011-ISO 1DVD

Intergraph TANK 2014 SP1 v6.00.01-ISO 1CD

Jason v8.3 Win32-ISO 1DVD

JMatPro v7.0 1CD(材料性能模拟软件)

KBC Petro-SIM Suite v4.0 SP2-ISO 1CD

LensVIEW 2003.1-ISO 1CD

LightTools v8.1.0 RC1 Win32_64-ISO 2DVD(光学软件)

LMS Raynoise v3.0 1CD(大型声场模拟软件系统)

Lucidshape v1.72 1CD

MAGMASOFT v4.4-ISO 1CD(完全破解版,铸造仿真软件)

Maxsurf v13.01-ISO 1CD(计算机辅助船舶设计和建造软件)

MIDAS GTS v2.5.1 1CD

Neotec WELLFLO v8.3.0-ISO 1CD

NUMECA Fine v8.72 1CD

OLGA v7.3-ISO 1CD

OSLO Premium v6.44 1CD(光学软件)

Petrel v2010.2.2-ISO 1DVD

Petrel v2013.2.Win64 1DVD

Phoenics 2009-ISO 1CD

PipelineStudio v3.6.1.0-ISO 1CD

Plaxis v8.5 pro  1CD

PRG Paulin v2011 1CD

ProCAST 2013.0-ISO 1CD(全模块最新完全版)

Process.Systems.Enterprise.gPROMS.v3.71 1CD

PSS/E v33.40-ISO 1CD

PTV VISSIM v4.3-ISO

Pumpcalc v7.00-ISO(离心泵分析程序)

PVElite 2014 v16.00.00.000 Full-ISO 1CD

PVTSim v20.0-ISO 1CD

ReflectorCAD 1.5(ASAP的配套软件,专门用于车灯灯罩设计)

RSoft.Photonic.Component.Suite.2013.12.Win32_64 2CD(光学元件模拟软件)

RSoft.Photonic.Component.Suite.2013.12.Linux32_64 2CD

RSoft.System.Suite.2013.12.Win32_64 1CD(光通信设计套件)

Schlumberger Techlog 2013.3 Win64 1CD

ShipConstructor 2008 R2-ISO 1CD

SafeTech.FE-SAFE.v6.4.Win32_64 2CD(精度极高的疲劳分析软件)

SIMSCI.Pro/II v9.2-ISO 1DVD(流程模拟程序)

Space-E 4.3 1CD(简体中文版)

Stoner Pipeline Simulator(SPS) v9.9-ISO 1CD

Synergee gas v4.52 1DVD

Sysnoise v5.6.WinNT2k 2CD(噪声分析软件)

TFC.Essential.Macleod.v9.7.0 1CD(光学薄膜设计软件)

TruckSim v8.1-ISO 1CD

TracePro v7.04-ISO 1CD(光学机构仿真软件)

VANTAGE PDMS v12.1 SP2-ISO 1DVD

VMGSim.v8.0.Build42 1CD

Winsim.Design.II.v9.31 Working 1CD

WorkNC G3 v21.0-ISO 1CD(多语言版)

ZEMAX v2009.06.09 1CD

华铸CAE 10.0 铸钢 1CD

压力容器计算软件SW6-2011 单机版 1CD

Latest crack software ftp download
cad/cam/cae/eda/optical crack ftp download software

Part of Software
----------------------------------------------------------------------
Do not put any replies here. WE will not check any replies here on the forum.

If you are interested in or want to get more software list ,please go

cax2one.3322.org

zhangqg.51.net

e-mail:
even2one@vip.sina.com;even2one@sohu.com

AUTOFORM V4.1.1 ISO 1CD
SURFWARE.SURFCAM.V2007
GIBBSCAM.2007 V8.9
DP.Technology.ESPRIT.2008.Plus 1CD
MOLDPLUS_METRIC_V9.2_FOR_MASTERCAM X2
MASTERCAM_X3_v12
solidcam_v2008 FOR SOLIDWORK
icam.compost.v17
JETCAM EXPERT V15.6
AMADA_CNCKAD v9.5
IMOLD 2008 FOR SOLIDWORKS
CGTECH.VERICUT.V6.3
Space-E v4.6 _ISO 1CD
K-MOLD V9.5
CIMATRON_ELITE_V8.5_ISO
MISSLER.TOPSOLID.2007 6.8 dvd
Nemetschek.PlanDesign.2006.Multilanguage
DEPOCAM 2006
SOLIDWORKS V2008 with sp1 ISO DVD for win 32bit for 64bit
TEKSOFT_CAMWORKS_V2008 ISO 1CD
VERO MACHINING STRATEGIST 8.027
Tebis cad cam v3.4 R1 WinNT2k
Sescoi.WorkNC_v18.2 WinNT2k
Amiable.FlexiSIGN.Family.Pro.v8.0
Allplan v2006.1 *MULTiLANGUAGE* (c)NUMETSCHEK
Open.Mind.HyperCAD.2006.2 MULTILANGUAGE
Open.Mind.hyperMILL_V9.7
Autodesk.Inventor.Professional.2010
DELCAM_ARTCAM_PRO_v2008
POWERMILL V9.0 ISO (c) DELCAM with Pmpost 1CD
DELCAM.POWERSHAPE.V8.08 ISO 1CD
DELCAM.COPYCAD.V8.0 1CD
VERO_VISI-SERIES_V15(c) VERO SOFTWARE
EDS I-DEAS V6 *ISO* (c) Siemense
PTC.PRO.ENGINEER.WILDFIRE.V3.0 M100 ISO DVD
Autodesk_autocad_2010
INNOVMETRIC_POLYWORKS_V10
RAINDROP_GEOMAGIC_STUDIO_V10.0 ISO
EDS.SOLID.EDGE.V100 DVD
ESI SysWeld 2007-ISO 1DVD
UNIGRAPHICS.NX.V6.02_ISO
DASSAULT SYSTEMES CATIA P3 V6R2009 *ISO* (c) DASSAULT SYSTEMES
DELCAM_FEATURECAM_2007
CADMEISTER V2.1
Intergraph Plant Design System(PDS)v07.00.00.15
AVL Cruise v2008
Visual Modflow 4.1

MOLDFLOW PLASTICS ADVISOR v7.3 1CD
MOLDFLOW.PLASTIC.INSIGHT.V6.1_ISO
Rebis.AutoPlant.v2007
CAMsoft ChemOffice ULTRA 2008
BENTLEY PlantSpace Design Series v8
Acecad_StruCAD v12 1CD
REIUSA_Staad_Pro_V8i
CSI.SAP2000.V12.0
CSI.ETABS.Nonlinear.v9.5.ISO
CSI.SAFE.V12.0
CHIEF.ARCHITECT.V11.RETAIL
ADAPTSOFT.ADAPT.PT.V8.0

LICOM_SYSTEMS_ALPHACAM_V2007
TEKLA_XSTEEL_STRUCTURES_V13 1CD
FORTEN 2000.V1.90 1CD
sds/2 Data.Design.System.Suite.V7.0.35.Multilanguage
ArchiCAD v11 *INTERNATIONAL* (c) GraphiSoft
RoboBAT_Robot_Millennium_v20_Multilanguage DVD

ZEMAX _EE 2009
ASAP v8.0 (c) Breault Research Organization
Optical.Research.Associates.LightTools.v6.0
LucidShape.v1.2
essential macleod V6.0
gPROMS.ModelBuilder.v3.15
OPTIS OptisWorks Studio 2007
Code-V 9.5
BeamPROP.v8.0s.Fullwave.v6.0.Winall

AspenTech.Aspen.Engineering.Suite.v7
ASPENTECH.ASPEN.PIMS.V7 ISO 1CD
INVENSYS_SIMSCI_PROII_V8.2
PAM-SP 2G 2007
HKS_ABAQUS_V6.81 FOR WIN &Linux and 64bit
ALTAIR.HYPERWORKS.V9.0 SR1
ADINA_SYSTEM_V8.5
MSC.PATRAN.V2007
MSC.ADAMS.2007.R2
MSC.NASTRAN.V2007
ANSYS.V12
APTECH.GAUSS.v7.0.10.4056
ESI.ProCAST.2009(c) ESI Group
Star-CD V4.04 (c) CD-Adapco
sysnoise 5.6
MAGMAsoft v4.4
anycast v2.43
flow-3d v9.3
Dynaform.5.6 (C)ETA
CAESAR II 5.1
COMSOL_FEMLAB_V3.5_ISO

ETA.VPG.v3.3 WiNNT2K  
Ls-Dyna V971
ansa_v12.21
FLUENT_V6.3
FLUENT_FLOWLAB_V1.2.10
FLUENT_AIRPAK_V2.1.12
Fluent.Gambit.v2.3.6 WiNNT2K

PROTEUS.ENGINEERING.MAESTRO.V8.7.6
PROTEUS.ENGINEERING.FASTSHIP.V6.1.29
Seakeeper v9.52 for Maxsurf
Span v9.52 for Maxsurf
Workshop pro v9.52 for Maxsurf
FORMSYS.MAXSURF.V12.04
Tribon M3 (c) Tribon Solutions
ShipConstructor 2006_R2
PTC.CADDS 5i REVISION 12
Optegra 8 (C) Ptc
Autoship v9.1
ShipConstructor 2006

Accelrys.Materials.Studio.v3.4
Pointwise.Gridgen.v16.0

CST_MICROWAVE_STUDIO V2009
MICROWAVE.OFFICE.V2009
FABMASTER V8G3
Agilent RFDE 2007
Agilent ICCAP 2008
Agilent EMS 2009
Agilent SystemVue 2008
FLOMERICS.FLOTHERM.V7.1
CoventorWare2004 ISO 1CD
GC-PowerStation 7.35 GraphiCode
cadence_finale_v6.1
cti_valor_genesis 9.2B
Saber_vY-2008
genflex v01.03.a2
PCBNAVIGATOR v5.1
yuhuikeji 发表于 2014-12-11 09:12:23
谢谢楼主分享。
zhaofunlin 发表于 2022-9-16 13:38:57
谢谢楼主分享。
bidinghong 发表于 2024-1-1 08:43:36
谢谢分享学习学习
您需要登录后才可以发表评论 登录 | 立即注册

厂商推荐

  • Microchip视频专区
  • 无线充电基础知识及应用培训教程3
  • PIC18-Q71系列MCU概述
  • 了解一下Microchip强大的PIC18-Q24 MCU系列
  • 想要避免发生灾难,就用MPLAB® SiC电源仿真器!
  • 贸泽电子(Mouser)专区

相关在线工具

相关视频

关于我们  -  服务条款  -  使用指南  -  站点地图  -  友情链接  -  联系我们
电子工程网 © 版权所有   京ICP备16069177号 | 京公网安备11010502021702
快速回复 返回顶部 返回列表