0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

英创信息技术嵌入式Linux工控板EM9160介绍

英创信息技术 来源:英创信息技术 作者:英创信息技术 2020-01-14 10:57 次阅读

I2C总线是一种2线制的主从通讯协议,主要运用于器件之间的数据通讯,在嵌入式系统中得到非常广泛的应用。作为一款高性价比的嵌入式Linux工控板,EM9160的对I2C总线提供了良好的支持,其主要特点是EM9160的16位GPIO中的任意位都可作为I2C总线的时钟信号SCL或数据地址信号SDA,这样客户可根据自己整机的具体情况,灵活的配置EM9160的GPIO管脚来作为I2C总线信号。

在Linux环境,I2C的驱动程序已自动加载,其设备文件名为“/dev/em9x60_i2c”。应用程序通过3个IOCTL命令来操作I2C接口:首先需要配置I2C总线资源,包括SCL、SDA信号和通讯速度,然后才能根据具体芯片的特性对其内部寄存器进行读写操作。以下以电力智能终端中广泛使用的RTC芯片RX-8025为例,对I2C的操作流程作进一步的介绍。

硬件电路:RX-8025是一种带I2C总线接口的实时时钟(RTC)芯片,具有精确调整的晶体频率,可满足电力智能终端需求。在下图中,EM9160的GPIO6作为I2C总线的SCL信号、GPIO7作为SDA信号,注意10K上拉是必须的。

I2C总线配置:PWM调用函数fd=open(”/dev/em9x60_i2c”, O_RDWR)打开设备文件后,首先需要配置总线,具体操作是把参数设置到指定的数据结构中,再调用IOCTL命令如下:

struct i2c_config config; //定义在em9x60_drivers.h
config.scl_gpio_num = GPIO6; //GPIO6作为SCL,定义见em9x60_drivers.h
config.sda_gpio_num = GPIO7; //GPIO7作为SCL
config.speed = 0; //=0:正常速度;=1:高速;=2:全速

I2C总线的速度指波特率,=0是最通常的速度,大约200kbps,可用于大多数RTC、AD芯片;=1:高速时指波特率接近400kbps;=2:全速的波特率可高达1Mbps,主要用于存储器类型的芯片。设置操作如下:

rc = ioctl(fd, EM9X60_I2C_IOCTL_CONFIG, &config);

I2C数据写:EM9160的I2C总线写操作,由数据结构struct i2c_io来传递参数和数据,具体定义可查看em9x60_drivers.h。写操作支持一次最多可写入16个字节,但具体写入多少还受I2C器件本身的限制,如RX-8025只支持一次对一个寄存器写入,例如写入30秒到RTC的秒寄存器的具体代码操作如下:

struct i2c_io io_info;
io_info.dev_addr = RX8025_ADDR; //RX8025_ADDR定义在RX-8025.h
io_info.reg_addr = SEC_REG; //SEC_REG定义在RX-8025.h
io_info.data_len = 1; //1个字节
io_info.data_buf[0] = 0x30; //注意是BCD码
rc = ioctl(fd, EM9X60_I2C_IOCTL_WRITE, &in_info); //执行写操作

I2C数据读:EM9160的I2C总线读操作,由数据结构struct i2c_io来传递参数和数据,具体定义可查看em9x60_drivers.h。读操作支持一次最多可写入16个字节,但具体一次读出多少字节还受I2C器件本身的限制,RX-8025支持一次读出多个寄存器的数据,例如一次读取全部日期时间信息共7个字节,具体代码操作如下:

struct i2c_io io_info;
io_info.dev_addr = RX8025_ADDR; //RX8025_ADDR定义在RX-8025.h
io_info.reg_addr = SEC_REG; //SEC_REG定义在RX-8025.h
io_info.data_len = 7; //7个字节
rc = ioctl(fd, EM9X60_I2C_IOCTL_READ, &in_info); //执行读操作

I2C数据读写所用的数据结构中,reg_addr表示被读写器件的寄存器地址,若为单字节地址,该变量的最高位(MSB = D31)应为0;若为双字节地址,地址占用reg_addr的D15 - D0(最低位,LSB),而变量的最高位D31必须置为1。另外,对不需要寄存器的器件,可把reg_addr设置为0xFFFFFFFF,这时驱动程序将不再发送寄存器地址。上述代码中从RX-8025读出的数据均为BCD,通常需要转换成C语言的整型数据类型。

为了方便客户使用RX-8025,我们编写了通过EM9160的I2C驱动程序操作RTC的范例程序,包括启动RTC,设置时间,读取时间等功能。感兴趣的客户可向英利公司技术支持索取范例源码。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 嵌入式系统
    +关注

    关注

    41

    文章

    3563

    浏览量

    129203
  • Linux
    +关注

    关注

    87

    文章

    11219

    浏览量

    208872
收藏 人收藏

    评论

    相关推荐

    无风扇嵌入式工控机特点

    随着信息技术的飞速发展和工业自动化程度的不断提高,工业控制领域对嵌入式工控机的需求日益增加。无风扇嵌入式工控机作为这一领域的重要组成部分,因
    的头像 发表于 11-18 15:16 90次阅读
    无风扇<b class='flag-5'>嵌入式</b><b class='flag-5'>工控</b>机特点

    嵌入式工控机如何使用?嵌入式工控机操作方法及注意事项

    嵌入式工控机作为现代工业自动化和控制系统中重要的硬件支持,广泛应用于生产线监控、轨道交通、电力能源等多个领域。其稳定性、可靠性以及适应恶劣环境的能力,使其成为许多行业的首选。那么,嵌入式工控
    的头像 发表于 10-18 10:02 204次阅读

    嵌入式linux开发的基本步骤有哪些?

    嵌入式Linux开发是一个复杂的过程,涉及到硬件选择、操作系统移植、驱动开发、应用程序开发等多个方面。以下是嵌入式Linux开发的基本步骤,以及每个步骤的说明。 硬件选择 在开始
    的头像 发表于 09-02 09:11 381次阅读

    嵌入式linux开发怎么操作

    嵌入式Linux开发是一种基于Linux操作系统的嵌入式系统开发平台。它通常包括一个处理器、内存、存储器、输入/输出接口等硬件组件,以及一
    的头像 发表于 09-02 09:09 316次阅读

    嵌入式linux开发芯片的工作原理

    嵌入式Linux开发是一种基于Linux操作系统的嵌入式系统开发平台,它广泛应用于工业控制、智能家居、智能交通、医疗设备等领域。
    的头像 发表于 09-02 09:07 319次阅读

    飞凌嵌入式技术创新日(深圳站)精彩回顾

    工的分享,则更加侧重于嵌入式技术的研发和创新,为与会者提供了新的问题解决思路;最后,粤港澳大湾区国中心技术专家的温老师 介绍了openEu
    发表于 08-28 09:06

    聚徽-嵌入式工控机是如何散热的

    嵌入式工控机散热主要依赖于以下几种方式:
    的头像 发表于 08-14 09:21 304次阅读

    聚徽-嵌入式工控机在性能方面有什么优势

    嵌入式工控机,亦被称为 Box 整机或 Embedded Industrial Computer,是专为工业现场环境打造的紧凑型计算机。与普通工控机相比,嵌入式
    的头像 发表于 08-13 09:25 300次阅读

    嵌入式工控一体机的安装方法和使用注意事项?

    客户咨询嵌入式工控一体机的安装问题和维护问题,本文中为大家介绍一下嵌入式工控一体机的安装方法和使用注意事项。
    的头像 发表于 08-04 11:12 1118次阅读

    聚徽触控-嵌入式工控机与传统工控机有什么不同

    嵌入式工控机得到了飞速的发展,其应用领域也愈发广泛。在某些行业和场景中,传统的工控机已经被新型的嵌入式工控机所替代。如今,
    的头像 发表于 07-24 09:31 352次阅读

    什么是嵌入式工控机?它有哪些特点?

    随着工业自动化程度的不断提高,嵌入式工控机作为工业控制领域的重要设备,其地位和作用日益凸显。嵌入式工控机以其独特的设计理念和卓越的性能特点,在工业控制、智能制造等领域发挥着重要作用。本
    的头像 发表于 06-11 17:58 1231次阅读

    基于AMD、ARM、Intel和NVIDIA技术构建的嵌入式工控

    嵌入式工控机具有高度可定制性,可以满足所有行业的所有边缘计算任务。在AMD、ARM、Intel和NVIDIA等领先技术公司的支持下,我们拥有适用于所有工业应用的全系列经过预审的嵌入式
    的头像 发表于 05-22 17:13 504次阅读
    基于AMD、ARM、Intel和NVIDIA<b class='flag-5'>技术</b>构建的<b class='flag-5'>嵌入式</b><b class='flag-5'>工控</b>机

    嵌入式工控机是什么?嵌入式工控机有哪些特点?技术特点是什么?

           嵌入式工控机是一种由工业设备生产的特殊单板计算机,就像个人计算机切片的功能一样,专门为某个行业设计。嵌入式工业计算机主要用于银行,工业智能设备和其他需要高可靠性和稳定性的领域。
    的头像 发表于 04-12 08:47 377次阅读

    嵌入式工控机性能特点 嵌入式工控机应用场景

    嵌入式工控机性能特点 嵌入式工控机应用场景 嵌入式工控机是一种专门设计用于工业控制系统的计算机设
    的头像 发表于 02-04 11:35 633次阅读

    嵌入式工控机与传统工控机的区别

    嵌入式工控机与传统工控机的区别  嵌入式工控机和传统工控机是两种不同类型的工业控制计算机设备,虽
    的头像 发表于 02-04 11:35 615次阅读