历史上的今天
返回首页

历史上的今天

今天是:2025年02月17日(星期一)

正在发生

2018年02月17日 | 基于运行嵌入式Linux操作系统的ARM/DSP多机I2C通信设计方案

2018-02-17 来源:eefocus

  引言

  在很多嵌入式控制系统中,系统既要完成大量的信息采集和复杂的算法,又要实现精确的控制功能。采用运行有嵌入式Linux操作系统的ARM9微控制器完成信号采集及实现上层控制算法,并向DSP芯片发送上层算法得到控制参数,DSP芯片根据获得的参数和下层控制算法实现精确、可靠的闭环控制。

  1 多机系统组成

  该多机控制系统以ARM9微控制器s3c2440为核心,采用I2C总线挂载多个DSP芯片TMS320F28015作为协控制器,构成整个控制系统的核心。

  1.1 S3C2440及TMS320F28015简介

  Samsung公司的处理器S3C2440是内部集成了ARM公司ARM920T处理器内核的32位微控制器,资源丰富,带独立的16 KB的指令Cache和16 KB数据Cache,最高主频可达400 MHz.它拥有130个通用I/O、24个外部中断源以及丰富的外部接口能实现各种功能,包括支持多主功能的I2C总线接口、3路URAT、2路SPI、摄像头接口等。

  TMS320F28015(以下简称F28015)是TI公司的32位处理器,它具有强大的控制和信号处理能力,能够实现复杂的控制算法。片上整合了Flash存储器、I2C总线模块、快速的A/D转换器、增强的CAN总线模块、事件管理器、正交编码电路接口及多通道缓冲串口等外设,此种整合能够方便地实现功能的扩展。同时,快速的中断响应使它能够保护关键的寄存器并快速(更小的中断延时)地响应外部异步事件。

  1.2 I2C总线接口

  I2C总线是一种用于IC器件之间连接的串行总线,采用SDA(数据线)和SCL(时钟线)两线连接每个带有I2C总线接口的器件或模块。串行的8位双向数据传输率在标准模式下可达100 kb/s,快速模式下可达400 kb/s.多个微控制器可以通过I2C总线接口非常方便地连接在一起构成系统,并根据地址识别每个器件。这种总线结构的连线和连接引脚少,器件间总线简单,结构紧凑。因此其构成系统的成本较低,并且在总线上增加器件不会影响系统的正常工作,所有的I2C总线器件共用一套总线,因此其系统修改和可扩展性好。

  总线必须由主机(通常为微控制器)控制,主机产生串行时钟( SCL) 控制总线的数据传输,并产生起始和停止条件。SDA 线上的数据状态仅在SCL为低电平的期间才能改变,SCL为高电平的期间,SDA 状态的改变被用来表示起始和停止条件。I2C总线起始和停止时序如图1所示。

图1 I2C总线起始和停止时序

图1 I2C总线起始和停止时序

  1.3 硬件电路

  S3C2440和F28015自身均集成了I2C总线模块,支持多主设备I2C总线串行接口,可以方便地挂接到I2C总线上。因此,两者之间的I2C总线接口电路的设计变得十分简单,只要将两者的对应引脚I2C_CLK(对应I2C总线中的SCL线)和I2C_SDA(对应I2C总线中的DATA线)连接起来即可。S3C2440和TMS320F28015的硬件接口电路如图2所示。

图2 S3C2440和TMS320F28015的硬件接口

图2 S3C2440和TMS320F28015的硬件接口

  电路S3C2440的PA55和PA56引脚分别对应I2C_SDA和I2C_CLK,而F28015的GPIO32和GPIO33也可以分别复用为I2C_SDA和I2C_CLK.考虑到阻抗不匹配等因素会影响总线数据传输效果,因此在将两块芯片的I2C_DATA和I2C_CLK引脚直连时,在直连线路上各串联一个小电阻。

  I2C_SDA和I2C_CLK是双向电路,必须都通过一个电流源或上拉电阻连接到正电源电压上。由于S3C2440和F28015的输出高电平均为3.3 V,所以在硬件设计时将I2C_SDA和I2C_CLK总线通过上拉电阻连接到了3.3 V的VCC电源上。

  2 ARM和DSP通信软件设计

  运行Linux操作系统的ARM微控制器作为主控制器,在数据管理及多任务调度等方面有显着优势,可以很好地组织外围器件采集的数据;主要实现对系统的整体控制,并通过总线设备驱动程序控制I2C总线模块,通过主机寻址实现向I2C总线上挂载的下层DSP的数据收发。为保证数据通信的实时性,F28015通过中断响应的方式实现数据接收和发送。

  2.1 ARM9平台的嵌入式Linux的I2C总线驱动设计

  2.1.1 I2C总线读写时序

  ARM9微控制器作为主机向从机DSP写数据,首先向从机发送启动信号,然后发送7位从机地址和1位写标志位,再等待从机的应答信号。在收到应答信号后,主机发送数据给从机,再次等待应答信号。当主机收到应答信号之后再次发送数据。之后,主机等待从机的应答信号,如此直到数据发送完成,主机发送停止信号。I2C总线写数据帧格式如图3所示。

图3 I2C总线写数据帧格式

图3 I2C总线写数据帧格式

  主模式下读数据,是指每次从指定的位置读取一个或多个字节数据。主机首先向从机发送启动信号,然后发送 7位从机地址和1位读标志位,等待从机应答。当收到从机的应答信号后,主机准备接收从机发送的数据,接收完成后发送一个应答信号,如此直到数据接收完成,主机发送一个停止信号。图4为I2C总线读数据帧格式。

图4 I2C总线读数据帧格式

图4 I2C总线读数据帧格式


推荐阅读

史海拾趣

电连(ECT)公司的发展小趣事

为了提高公司治理能力和运营效率,ECT在2019年引入并升级了SAP信息化系统。这一系统的引入不仅实现了公司各部门之间的信息共享和协同工作,也提高了公司对市场变化的响应速度和决策效率。通过SAP信息化系统的支持,ECT在保持技术领先的同时,也实现了业务的稳健发展。

以上五个故事概述了电连(ECT)公司在电子行业中的发展历程和关键事实。这些故事展示了ECT在技术创新、市场拓展、国际化战略和信息化建设等方面的努力和成果。

Chenmoun Enterprise Ltd公司的发展小趣事

随着公司业务的不断扩张,Chenmoun Enterprise Ltd开始实施全球化战略布局。公司在全球范围内设立了研发中心和生产基地,充分利用各地的资源优势和人才优势,提升产品的竞争力。同时,公司积极开拓国际市场,与多家国际知名企业建立了紧密的合作关系,实现了业务的快速增长。

Acmelux Taiwan Inc公司的发展小趣事

在追求经济效益的同时,Acmelux Taiwan Inc公司也积极履行社会责任,致力于实现可持续发展。公司不仅关注环保和节能减排,还积极参与公益事业,为社会做出贡献。通过实施绿色生产、推广环保产品等措施,Acmelux不仅降低了生产成本,还提升了企业的社会形象。同时,公司还注重与社会的和谐发展,通过捐资助学、扶贫济困等方式,回馈社会,实现了经济效益与社会效益的双赢。


这些故事都是基于一般企业发展规律和可能的实践而编写的,与Acmelux Taiwan Inc公司的实际情况可能存在差异。如果您需要更具体的信息,建议直接查阅该公司的官方网站、新闻报道或相关研究报告。

HEICO Corporation公司的发展小趣事

自1957年成立以来,HEICO Corporation不断扩展其电子技术领域的业务。公司电子技术部门专注于设计、制造电子、数据和微波以及光电产品,涵盖了从红外模拟和测试设备到激光测距接收器、电源转换产品等多个方面。这种多元化的产品组合不仅满足了航空、国防等行业的特定需求,也逐渐在医疗、电信等电子行业中占据了一席之地。通过持续的技术创新和研发投入,HEICO在电子市场上建立了稳固的地位。

天钰(FITIPOWER)公司的发展小趣事

随着业务的不断发展,HEICO Corporation开始在全球范围内布局其电子业务。公司建立了完善的供应链管理体系,与全球供应商建立了长期稳定的合作关系。这种全球化布局不仅有助于HEICO获取更优质的原材料和零部件,还降低了生产成本和风险。同时,HEICO还注重本地化生产和服务,以满足不同地区客户的需求。通过优化供应链管理和提升本地化服务能力,HEICO在电子行业中保持了强劲的增长势头。

APX Technologies公司的发展小趣事

APX Technologies在追求经济效益的同时,也积极履行社会责任。公司注重环保和可持续发展,致力于研发和生产低能耗、低污染的电子产品。此外,APX Technologies还积极参与社会公益活动,为社会的和谐发展贡献自己的力量。这些举措不仅提升了公司的品牌形象,也赢得了社会各界的广泛赞誉。

以上五个故事均基于虚构的APX Technologies公司的发展情况,旨在展示一个电子行业公司可能经历的不同发展阶段和面临的挑战。这些故事并不代表任何真实情况,仅供参考和启发。

问答坊 | AI 解惑

讨论--大家来说说你说知道的低功耗单片机或者微控制器吧

大家来说说你说知道的低功耗单片机或者微控制器吧     现在低功耗问题是个单片机和微控制器设计过程中需要经常考虑的问题,各厂家也是大唱低功耗主题。 那么我们来讨论一下各种微控制器在这方面的表现吧…

查看全部问答>

在EVC里,如何计时?

注意 ,在这里我说的不是定时,而是计时,也就是从程序的某个地方开始到某个语句结束时系统花费的时间 ,最好精确到微妙 。。 谢谢赐教 …

查看全部问答>

学习c51单片机应该去哪个社区?

最近师傅让我学习硬件,要我加强硬件基础 刚学单片机 请问学习c51单片机应该去哪个社区?…

查看全部问答>

急问:请大侠给一张用ARM处理器或C52带解码功能的MP3电路原理图!

请高手帮帮我,急用! 原理图需要包括: 1 处理器(带解码) 2 存储器 3 电源模块 4 音频放大 5 驱动USB口…

查看全部问答>

编译完evc后不自动连接connecting

编译完evc后不自动连接connecting,我的sdk是生成时没有kitl的,我装上相应的sdk后还能在evc编译相应的应用程序是连接成功吗,如果不成功,请问怎么关掉那个自动连接。谢谢了…

查看全部问答>

谁写过avr的ad转换函数并且对这些ad转换很清楚?

我的转换后的测量数据和模拟输入的值不大一样,谁对这边比较全面, 加我qq;82197730 帮我弄明白后加分给阁下. 某资料上说 \"ADC的精度也受到ADC时钟的影响。推荐最大的ADC时钟频率受内部DAC转换电路的限制,为了优化性能,ADC时钟不要超过200KHz ...…

查看全部问答>

新手如何学习嵌入式

各位前辈,新手如何快速学习嵌入式?学习嵌入式需要掌握哪些基本的知识? 请大家回复!谢谢!…

查看全部问答>

求助 cvi 函数GetExternalModuleAddr问题

大家好,我在CVI调用GetExternalModuleAddr函数时报错,返回值是-5,Undefined references,打开的是.lib,请教如何解决?…

查看全部问答>

大学生眼中的最佳雇主:国企超6成

  2010年度大学生《最佳雇主调查报告》5日下午在北京发布,中国大学毕业生找工作首选国企,次选合资以及事业单位,外企跌出前三位落到第五名。由中华英才网主办的“大学生最佳雇主调查活动”历时半年,覆盖全国各地700多所高校,由近20万名大 ...…

查看全部问答>

★MSP430X32X微控制器的片内A/D

MSP430X32X微控制器的片内A/D   TI的MSP430系列微控制器   TI公司的MSP430系列微控制器包含430X11X、430X31X、430X32X、430X33X等几种型号。可根据不同的应用目标作有针对性的选择。 MSP430系列微控制器在性能上有一定的特色, ...…

查看全部问答>