英创信息技术嵌入式Linux工控板EM9160介绍
发表于5年前 | 作者: blog | 分类: 嵌入式工控机 | 破蛋日:2020年01月22日 |
总线线制的主从通讯协议,主要运用于器件之间的数据通讯,在嵌入式系统中得到非常广泛的应用。作为一款高性价比的嵌入式工控板,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命令如下:
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的新手,那么一些常见错误很可能会给您带来麻烦。提前了解它们,您就可以再逐渐熟悉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处理器迅速发展的背景下,介绍了….
可编程逻辑器件PLD(Programmable logic Device)就是由用户进行编程实现所需….
Kali Linux团队宣布,从即将推出的2020.1版本开始,Kali Linux发行版将默认用户….
为适应未来网络需求的发展,新一代网络体系结构得到研究人员的关注,而虚拟路由器作为构建虚拟网络的核心设….
英特尔新一代傲腾SSD支持PCIe Gen 4.0接口,搭载产品将于2021年推出
根据消息报道,英特尔工程师Frank Ober最近在Twitter上发布了一个未公布的信息,即下一代….
近日,国产中望CAD Linux预装版成功登陆统一操作系统UOS,中望CAD Linux预装版是我国….
软件业务收入保持较快增长。1-11月,我国软件业完成软件业务收入64616亿元,同比增长15.5%,….
嵌入式软件是航天型号软件系统的关键组成部分。随着航天型号的快速发展,嵌入式软件规模及复杂度呈快速递增….
Linux开源生态越来越繁荣,也有越来越多的国产系统、软件加入其中,大家摆脱虚拟机和双系统的愿望指日….
将用户添加到现有组是Linux管理员的典型任务之一。对于面对较庞大环境的一些管理员来说,这是日常活动….
被盗不用怕,USB kill cable可抹去你的Linux笔记本信息
一位软件工程师设计了一种所谓的USB“kill cable”,当你的设备在公园,购物中心和网吧等公共….
该文档面向集成电路设计系列实践环节,包括“集成电路基础课程设计”、“模拟集成电路课程设计”、“数字….
EAF是Embedded Application Framework 的缩写,即嵌入式应用框架。嵌入….
嵌入式系统是一种专用的计算机系统,作为装置或设备的一部分。通常,嵌入式系统是一个控制程序存储在ROM….
Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然….
如果在以前,我也会推荐要么使用Mac,要么使用Linux.但是现在有了强大的Pycharm,我推荐使….
KVM,是一个开源的系统虚拟化模块,自 Linux 2.6.20 之后集成在 Linux 的各个主要….
在微型计算机中,是运用二进制数进行运算的,其运算是运用逻辑代数(布尔代数)的基本原理去完成,利用逻辑电路来实现的。 所谓逻辑…
事物总有个核心,复杂的事物总可以模块化、层次化, 嵌入式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/1364.html
除非注明,本站所有文章皆为原创,转载请以链接形式标明本文地址