您的位置 » 首页 » 嵌入式工控机 » 英创信息技术嵌入式Linux工控板EM9160介绍

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

发表于4年前 | 作者: blog | 分类: 嵌入式工控机 | 破蛋日:2020年02月09日 |

总线线制的主从通讯协议,主要运用于器件之间的数据通讯,在嵌入式系统中得到非常广泛的应用。作为一款高性价比的嵌入式工控板,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的操作流程作进一步的介绍。

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

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

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

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

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

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

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,设置时间,读取时间等功能。感兴趣的客户可向英利公司技术支持索取范例源码。

当我们还在体验 Linux 5.5 稳定发行版带来更好的硬件支持时,Linux 5.6 已经来了。

优麒麟UKUI基于GTK和QT进行开发,移植至Arch Linux操作系统

据报道,目前优麒麟UKUI桌面环境和优客系列应用软件已经大部分移植至Arch Linux操作系统。继….

本文是使用 OpenSSL 的密码学基础知识的两篇文章中的第一篇,OpenSSL 是在 Linux ….

介绍完内存类别,内存的基本结构,分段寻址原理,我们再来看我们程序是怎么使用内存。

相信多数安卓用户都使用过Qpython这款移动端的Python编辑器吧?之前我也研究过一阵子这个工具….

尽管并不是很新颖的产品,但 AMD 锐龙嵌入式 APU 还是得到了越来越多 PC 制造商的赏识。

全球最受欢迎的OS操作系统是什么?大家第一个想到的恐怕是Windows,最新的Win10安装量超过1….

在当今社会,随着生活质量的提高和生活节奏的加快,人们的工作和生活更加信息化。 信息社会改变了人们的生….

现在的开发人员都趋向于使用新的编程语言,那么旧的编程语言呢?它们的前途一般是这样两种:仍然可以使用,….

PostgreSQL和MariaDB与SQLite这3个开源数据库有什么区别

在现代企业技术世界里,开源软件已牢固地确立了自己作为不可忽视的,最大力量之一的地位。由于开源运动的出….

网上的方法,我基本上都试了个遍,摸索出最简单的方法鼓捣这个的起因是,蹲坑时突发奇想,手机底层是lin….

UNIX 系统早在20世纪70年代,是开源而且免费的,但是在1979年的一天,AT&T公司宣布了对 ….

安全是IT行业一个老生常谈的话题了,从之前的“棱镜门”事件中折射出了很多安全问题,处理好信息安全问题….

物联网,或称IOT,是指通过嵌入在设备和物理对象中的微型计算系统进行互连,并使这些设备能够交换数据,….

现场可编程门阵列(FPGA,Field Programmable Gate Array)是一种高密度….

嵌入式系统就:是一个具有特定功能或用途的计算机软硬件结合体,或指装入另一个设备并且控制该设备的专用计….

您是否遇到过在远程计算机上执行长时间运行任务的情况,然后连接突然断开,SSH 会话终止了并且丢失正在….

在内核态申请内存比在用户态申请内存要更为直接,它没有采用用户态那种延迟分配内存技术。内核认为一旦有内….

如果您是Linux的新手,那么一些常见错误很可能会给您带来麻烦。提前了解它们,您就可以再逐渐熟悉Li….

在Linux系统中,由于成本的限制,往往会存在资源上的不足,例如 CPU、内存、网络、IO 性能。本….

Orange Pi 全志H2(型号:Zero,R1)和H3芯片系列(型号:One,Lite,PC,PC Plus,Plus 2E)的开发板,连接HD…

真正免费运行Linux的开源智能手机梦想从未真正实现。它以各种形式出现,并在此过程中遭受了许多挫折。….

运维是指大型组织已经建立好的网络软硬件的维护,就是要保证业务的上线与运作的正常。

嵌入式系统广义上认为是一个由系统硬件与系统软件有机组成并且具有高可靠性和实时性的可控系统,设计用于满….

Windows 7正式退役,一些人选择继续坚守,一些人选择升级Windows 10,还有一些人则另辟….

Khronos推出Vulkan 1.2规范 可更好地让Linux平台运行DX游戏

2019年3月份推出Vulkan 1.1规范之后,Khronos今晚又推出了Vulkan 1.2规范….

基于Internet网络的在线监控模式,一方面运行在Web服务器上的CGI程序根据客户端浏览器的请求….

Win7正式退役,一些人选择继续坚守,一些人选择升级Win10,还有一些人,则另辟蹊径,转投Linu….

通过该设计能够确保装有不同操作系统的各种服务器能够在本系统中正常工作,同时使用消息队列实现系统模块之….

关于C语言的goto语句存在很多争议,很多书籍都建议“谨慎使用,或者根本不用”。这里先不做过多的讨论….

《从51到ARM:32位嵌入式系统入门》内容分为3部分:第1部分是前4章,从大家所熟悉的51系列单片….

针对比较流行的嵌入式Linux,eCos,vxworks,Palm,Windows CE,μcos等….

嵌入式系统通常是面向特定应用的,嵌入式CPU与通用型的最大不同就是嵌入式CPU大多工作在为特定用户群….

嵌入式系统是用来控制或者监视机器、装置、工厂等大规模设备的系统。嵌入式系统通常进行大量生产,所以单个….

不少用户希望通过将 Flash-Friendly File-System (F2FS) 作为根文件系….

什么是嵌入式系统?有一个客观定义就是,除PC之外的一切计算机系统都可以叫嵌入式系统。例如智能手机、工….

当我们试图在较小的嵌入式系统中使用更多的特性时,它们的安全性常常被忽略。

洗衣机由一个叫做汉密尔顿史密斯的美国人,发明于 1858年。历时150多年,发展到今天,我们熟悉的洗….

本文档的主要内容详细介绍的是Rockchip Linux SDK的开发指南的详细资料说明。

Endless OS在4GB RAM的Raspberry Pi 4 B上运行

在2020年国际消费电子展(CES 2020)上,Endless公司现场展示了如何在具有4GB RA….

Linux内核创建者Linus Torvalds最近回应 Linux内核调度器存在问题的文章引发了大….

在总线的开发或测试工作中,我们经常需要在线监测总线的报文进行保存或者发送给其他软件进行分析。Ixxat的CAN PC接口产品可…

目前嵌入式主要开发环境有Linux、Wince等;Linux因其开源、开发操作便利而被广泛采用。而L….

这个破问题终于完满解决!以前都是网通的那个破插件,让我烦恼了一学期多始终没能使1inux连上网。不过….

1;将openwrt14.07 中的内核版本从3.10.49 更换成3.10.102

本文档的主要内容详细介绍的是Linux下网络编程TCP并发服务器和TCP客户端程序免费下载

冯诺依曼架构、处理器市场体系都在受到冲击,浪潮的该项专利在RISC-V处理器迅速发展的背景下,介绍了….

在微型计算机中,是运用二进制数进行运算的,其运算是运用逻辑代数(布尔代数)的基本原理去完成,利用逻辑电路来实现的。 所谓逻辑…

事物总有个核心,复杂的事物总可以模块化、层次化, 嵌入式Linux也如此。学习嵌入式Linux困难,主要因为涉及知识和概念过多,即…

基于紫金桥跨平台跨平台实时数据库,可Linux系统下快速实现一个监控系统。 1、组态流程和传统windows组态差不多,所以上手很快…

刚刚学用linux VIM,切换到输入模式?i在当前光标所在字符的前面,转为输入模式 a在当前光标所在字符的后面,转为输入模式 我不…

1、引言 在系统上电时,需要从外部载入所要运行的程序,此过程被称为程序加载。多数情况下,从外部专用的 读入程序。这种方式速…

嘉宾介绍:朱有鹏,互联网课程品牌《朱老师物联网大讲堂》创始人。精通U-Boot、linux kernel移植及驱动程序开发;精通C、C+…

AM4379 AM437x ARM Cortex-A9 微处理器 (MPU)

TI AM437x高性能处理器基于ARM Cortex-A9内核。 这些处理器通过3D图形加速得到增强,可实现丰富的图形用户界面,还配备了协处理器,用于进行确定性实时处理(包括EtherCAT,PROFIBUS,EnDat等工业通信协议)。该器件支持高级操作系统(HLOS)。基于Linux的® 可从TI免费获取。其它HLOS可从TI的设计网络和生态系统合作伙伴处获取。 这些器件支持对采用较低性能ARM内核的系统升级,并提供更新外设,包括QSPI-NOR和LPDDR2等存储器选项。 这些处理器包含功能方框图中显示的子系统,并且后跟相应的“说明”中添加了更多信息说明。 处理器子系统基于ARM Cortex-A9内核,PowerVR SGX图形加速器子系统提供3D图形加速功能以支持显示和高级用户界面。 可编程实时单元子系统和工业通信子系统(PRU-ICSS与ARM内核分离,允许单独操作和计时,以实现更高的效率和灵活性.PRU-ICSS支持更多外设接口和EtherCAT,PROFINET,EtherNet /IP,PROFIBUS,以太网Powerlink,Sercos,工控嵌入式,EnDat等…

文本标签:
本文地址:http://www.huapuxin.cn/blog/3736.html
除非注明,本站所有文章皆为原创,转载请以链接形式标明本文地址

马上分享给你的朋友吧~

评论已关闭!