基于WinCE的I2C驱动程序设计
引言
随着以计算机技术、通信技术和软件技术为核心的信息技术的迅速发展,嵌入式系统在各行业得到了广泛的应用,极大地推动了行业的渗透性应用。
嵌入式系统是“以应用为中心、以计算机技术为基础、软硬件可裁剪、适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统”,由嵌入式硬件和嵌入式软件两部分组成。嵌入式软件包括嵌入式操作系统和嵌入式应用软件。Microsoft的桌面操作系统已经为人们熟悉和使用,嵌入式的操作系统Windows CE.net也日益风行。Windows CE.net是Microsoft推出的功能强大的紧凑、高效、可伸缩的32位嵌入式操作系统,主要面对各种各样的嵌入式系统和产品。该系统所具有的多线程、多任务、完全抢占式的特点是专为各种具有严格资源限制的硬件系统所设计的。为了将操作系统和硬件设备连接起来,联系硬件和软件的驱动就显得很重要。
下面主要针对三星公司ARM9内核的芯片S3C2410进行分析,介绍在Windows CE.net系统下进行底层设备驱动开发的方法并提供I2C通信的实例。
1 I2C通信协议及S3C2410芯片介绍
I2C(Inter Integrated Circuit)总线是1980年由Philips公司推出的。 I2C总线用两条线(SDA和SCL)在总线和装置之间传递信息,在微控制器和外部设备之间进行串行通信或在主设备和从设备之间进行双向数据传送。两条通信线通过上拉电阻被拉升至+5 V。在控制系统中的每个集成电路可以通过一个CMOS缓冲器来读每一条线路,也可以通过一个栅极开路的FET管将每一条线的电平下拉。因此,对每个芯片来说,每条线既是输入线,又是输出线。
I2C总线遵从同步串行传输协议,即各位串行(一位接一位)发送,由时钟(clock)线指示读数据(data)线的时刻。每个数据包前有一个地址,以指示由哪个器件来接收该数据。
S3C2410是一款基于ARM920T的16/32位RISC微处理器,主要用于手持设备,拥有高性价比,低功耗等特点,也是目前市面上出现较多的嵌入式开发板的处理器之一。芯片拥有16 KB的指令和数据缓存器,有存储管理单元(MMU)、LCD控制器、3个串口、4路DMA、4个时钟定时器、8路10位的A/D转换;支持I2C、I2S、SPI、主从USB等接口以及SD/MMC卡。
S3C2410微处理器的I2C总线可以处于下面4种模式下:主接收模式、主发送模式、从接收模式和从发送模式。处理器对I2C进行的操作,主要是对下面的几个寄存器进行读/写:
IIC控制寄存器,IICCON(物理地址0X54000000,内存映射后的虚拟地址);
IIC控制/状态寄存器,IICSTAT(物理地址0X54000004);
IIC数据寄存器,IICDS(物理地址0X54000008);
相关文章
- 2023-08-11EF-500回声测深系统的设计及应用
- 2022-06-29片上网络交换机制的研究
- 2024-11-01F2等级砝码质量测量结果的不确定度评定
- 2023-12-29面向大规模数值计算的并行网格生成
- 2024-10-14梁纯弯曲的大变形分析
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。