相关服务

  • 《现代电子技术》2007年第8期摘录:吴玮等:I。C总线驱动在嵌入基

如发现有乱码,请点击下面链接浏览原文
正文摘录:

吴玮等:I。C总线驱动在嵌入基丞绽虫塑匝壁型堕使能I。C总线:VP(IOPMOD)1一Ox3;//设置pin[0][1]为输出①VP(IOPDATA)一SDAHIGHlSCI,HIGH;//拉高②SDASTATUS—SDAHIGH;//存储SDA状态③SCI。STATUS—SCLHIGH;//存储SCI。状态④delay();屏蔽I。C总线:④一③一②一⑤VP(IOPMOD)8L=~ox3;//设置pin[O][1]为输入⑤开始操作,SCL为高电平时,SDA由高电平向低电平跳变:VP(IOPDATA)一SDAHIGH1SCI。STATUS;1nSDASTATUS—SDAHIGH;f—delay();VP(10PDATA)一SCLH1GHlSDASTATUS;1月SCLSTATUS—SCI。HIGH;f—delay();VP(IOPDATA)一SDA—LOWISCL—STATUS;1两SDASTATUS—SDALOW:f…delay();VP(IOPDATA)一SCL—L0wISDA—STATUS;1同SCLSTATUS—SCI.LOW;f—delay();结束操作,当SCL为高电平时,SDA产生由低电平到高电平的跳变。调换开始操作代码的顺序即为结束操作:⑨一⑧一⑦一⑥。需要注意的是,每次操作完之后必须加一个delay操作,使数据线稳定下来,否则有可能导致时序的紊乱。写操作:unsignedcharindex;for(index一0;index<8;index++)//模拟移位寄存器{if(output—data&Ox80){⑥;}else{⑧;}58读操作:IIC—write(IIC—addr);IIC—write(reg—addr);delay();//模拟一个ACK信号)//ACK//写I。C器件地址//写寄存器地址11Cstart();IICaddrrd—IICaddr10xl;//传输方式设置为读IICwrite(IICaddrrd);VP(IOPMOD)&一~Oxl;delay();//设置pin[O]为输入data一0:for(index一0;index<8;index++){//模拟移位寄存器data<<一1;⑦;if(VP(IOPDATA)&0x1)data1—0xldelay();⑨;}VP(IOPMOD)l一0xl;delay();//设置pinE0]为输出⑥;⑦;⑨;IIC—stop();return(data);3.3应用实例为ARM外挂PCF8563实现实时时钟控制。PCF8563是PHIl。IPS公司生产的具有I。C接口的低功耗CMOS实时时钟/日历芯片。其最大总线速度为400kb/s,每次读写数据后,其内嵌的字地址寄存器器会自动产生增量。下面用模拟实现PCF8563的I。C实时时钟芯片的操作,有字节写/读两种状态,程序中从地址的读地址为0A3H,写地址为0A2H。首先使能I。C总线,然后对I。C总线进行开始操作,就绪之后,依次写入器件地址(即0xA2),写入寄存器地址,再写入所设寄存器值。控制/状态寄存器1为0,控制/状态寄存器2为0,秒寄存器为30,分钟寄存器45,小时寄存器为17,日寄存器为20,星期寄存器为0,月/世纪寄存器为88,年寄存器为6(即2006年8月20日17点45分30秒)。当程序运行一段时间(15分钟)后,依次读取寄存器,得到时间为2006年8月20日18点00分30秒。4总结本文给出了两种I。C驱动的实现方法。前者直接利用主机端自带的I。C总线控制器,通过配置一系列特殊寄存器实现I。C总线传输。这种方式适用于一些本身包含I。C总线控制器的芯片,实现起来简单方便。后者则适用于主机端没有I。C控制器的情况。此时主机端只要有GPIO端口,就可利用其实现同样的功能。在基于ARM加auClinux的嵌入式视频监控产品中,同时将这两种方法做了具体的运用。其一的示例就是通过模拟的I。C总线,挂接PCF8563实时时钟芯片,并取得很好的实时效果。参考文献_1]TheI。C—BusSpecification(VER2.1)EZ].PhilipsSemieon—ductorsCO..2000.E2]李祥兵,郑扣根.Linux中I。C总线驱动程序的开发[J].计算机工程与设计,2005(1):41—43.C3]李驹光,聂雪媛,江泽明,等.ARM应用系统开发详解——基于$3C4510B的系统设计[M].北京:清华大学出版社,2003.r4]AndrewS,DominicS,ChrisW.ARMSystemDeveloper’SGuide:DesigningandOptimizingSystemSoftware[M].沈建华,译.北京:北京航空航天大学出版社,2005.作者简介吴玮女,1982年出生,云南曲靖人,在读硕士研究生。主要研究领域为嵌入式应用。ll<<协_罟一t:,叫⑨⑨:,∞⑦⑦旺_呈m一山-鼋一Cra扭g0;-墨㈣甜m.哪』一∽

阅读此文(图):   点击此处在线翻阅