在嵌入式系统处理器中有相当一部分处理器不带SPI接口,但基丁SPI接口的设备非常丰富,此外,SPI设备的不同以及处理器对GPIO口位寻址是否支持各处理器各有不同,因而不同处理器中软件模拟GPIO也各不相同。若能提供一种通用可配置可移植的GPIO模拟SPI总线的驱动则能很方便快捷的访问SPI设备,从而提高整个嵌入式系统的开发效率。本文针对GPIO口位寻址与否给出方面,给出了一种可配置GPIO模拟SPI总线的方法并详细介绍了其设计与实现过程,且具有代码小可移植性强使用方便等特点。
1 GPIO规范
SPI是一个全双工的串行接口。它设计成可以在一个给定总线上处理多个互联的主机和从机。在一定数据传输过程中,接口上只能有一个丰机和一个从机能够通信。在一次数据传输中,主机总是向从机发送一个字节数据,而从机也总是向主要发送一个字节数据。可以使MCU与各种外围设备以串行方式进行通信以交换信息。由于SPI总线一共只需3~4位数据线和控制线即可实现与具有SPI总线接口功能的各种I/O器件进行接口,而扩展并行总线则需要8根数据线、8~16位地址线、2~3位控制线,冈此,采用SPI总线接口可以简化电路设计,节省很多常规电路中的接口器件和I/O口线,提高设计的可靠性。在基于SPI总线接口构成的通信网络中,通信可由主节点发起,也可由从节点发起。当主节点发起通信时,它可主动对从节点进行数据的读写操作。工作过程叙述如下:首先选中要与之通信的从节点(通常片选端为低有效),而后送出时钟信号,读取数据信息的操作将在时钟的上升沿(或下降沿)进行。每送出八个时钟脉冲,从节点产生一个中断信号,该中断信号通知上节点一个字节已完整接收,可发送下一个字节的数据。SPI接口网络主从点需完成给出片选信号及时钟信号,它可主动的与各从节点进行信息的交流;而在从节点主动要求服务的情况下,它却是一种半主动的形式。由SPI接口技术构成的网络接口信号线(CLK、MOSI、MISO、/SS和INT)如果辅之以相应完备的通信协议,其服务功能必然会增强,相比于485等主从式分布网络而言,其通信速率也应有较人的提高。
2 GPIO模拟SPl
2.1 SPI硬件结构
SPI接口在内部硬件实际上足两个简单的移位寄存器,传输的数据为8位,在主器件产生的从器件使能信号和移位脉冲下,按位传输,高位在前,低位在后,SPI内部硬件结构如图1所示。
2.2 SPI时序
在SCLK的下降沿上数据改变,同时一位数据被存入移位寄存器,SPI时序如图2所示。
2.3 SPI写过程模拟
采用掩码方式实现位控制。
3 可配置GPIO设计与实现
GPIO端口可分为支持位寻址和不支持位寻址,需由程序移植人员根据处理器及编译器情况定义GPIO对应的SPI接口,相关文件在SPIHARD.H中。
3.1 GPIO配置
3.2 实现配置的可移植部分
与GPIO口寻址方式无关性代码的实现。
以上实现在EPSON S1C33L11、AT89C52、SPCE061A及PHILIPS ARM LPC2106上都得到验证。
关键字:接口 控制 地址 寄存
引用地址:
嵌入式系统中可配置式GPIO模拟SPI总线方法
推荐阅读最新更新时间:2024-05-13 18:38
瑞萨电子发布全新RZ/T2L工业用MPU 可通过EtherCAT通信实现快速、准确的实时控制
瑞萨电子发布全新RZ/T2L工业用MPU 可通过EtherCAT通信实现快速、准确的实时控制 与其它瑞萨MPU/MCU的软件兼容性让开发人员能够无缝实施可扩展设计 2023 年 3 月 24 日,中国北京讯 - 全球半导体解决方案供应商瑞萨电子今日宣布, 推出一款支持EtherCAT通信协议的全新工业用微处理器(MPU)——RZ/T2L,为工业系统实现高速、精确的实时控制 。RZ/T2L MPU继承了其高端产品RZ/T2M的硬件架构,为快速增长的EtherCAT通信市场带来理想的解决方案。新型MPU提供了交流伺服驱动器、变频器、工业机器人、协作机器人等所需的高速和精确实时处理性能。同时,与RZ/T2M相比芯片尺寸减
[工业控制]
微控制器应用中的功耗优化技术
1. 引言 许多应用依靠微控制器来提供高性能,同时最大限度地降低功耗。微控制器的总体功耗取决于设备的功能和设计师对如何利用设备功能的理解。本文简要介绍影响功耗的硅技术元素,提供如何在普通设计中利用硅技术的指南,最后详细介绍如何利用飞思卡尔S12XE双核微控制器的特殊功能来优化功耗。 2. 功耗模式 嵌入式应用的运行行为可以分为两大运行状态,即所谓的“运行模式”和“低功耗模式”。在运行模式中,应用全面运行,并从电源获取电流来执行其功能。在低功耗模式中,应用通常处于修面状态,将功率降到尽可能低的水平。 集成电路设计的两个不同特征会影响两种不同运行状态。对这种根本影响的全面了解可能会对应用的最终功率要求产生极大影响。 3. 集
[应用]
中国,日本和美国累计控制着全球工业机器人安装量的58.71%。
Buy Shares提供的数据表明,中国,日本和美国累计控制着全球工业机器人安装量的58.71%。 截至2020年9月,全球共有381,000台工业机器人。 新冠病毒已经严重刺激了工业机器人市场。 根据数据,中国占最大份额,为140,500辆,其次是日本,为49,900辆。 美国位居第三,安装了33,300台。韩国以2.79万辆的安装量排名第四,德国以205亿安装量排名第五。 捷克共和国的工业机器人安装数量最少,为2,600。 如果安装工业机器人市场,则有几个因素会促进增长。根据研究报告: “由于新冠病毒,在史无前例的情况下,工业机器人市场也有望增长。 在新冠期间,许多工厂不得不通过关闭部分生产工厂来保证员工生命健康。 新冠为该
[机器人]
地址总线,字长,内存容量,寻址范围 之间的计算
处理机字长是指处理机能同时处理(或运算)的位数,即同时处理多少位(bit)数据。比如Intel Pentium 4处理器字长为32位,它能同时处理32位的数据,也即它的数据总线为32位。以前的处理器比如8086,则为16位处理器,现在新兴的64位处理器,它的数据吞吐能力更强,即能同时对64位数据进行运算。处理器的字长越大,说明它的运算能力越强。如果讲处理器的寻址范围,则要看处理器的地址总线的位数,而不是它的字长!这个要明白!比如Intel Pentium 4处理器的数据总线为32位,地址总线也是32位。8086的数据总线为16位,地址总线为20位。新兴的64位处理器的数据总线为64位,地址总线大部分是32位。这个清楚之后,再看地址总
[嵌入式]
高集成高可靠高功率密度,安森美USB-C™ PD 3.0控制器问市
推动高能效创新的安森美半导体,推出了一对完全符合USB-C PD 3.0标准的新器件。FAN6390自适应充电控制器使USB-C PD 3.0可编程电源(PPS)标准易于集成到系统中,而NCP12601是高度集成的多模式反激控制器,用于强固的高性能离线电源如适配器 。新器件极大地简化了基于USB-C PD 3.0的电源设计,提供了更高集成度和可靠性,赋能更高功率密度的设计,用于各种电子设备的应用,如智能手机充电器、AC-DC电源适配器和辅助电源/内部电源管理等。 安森美半导体延续其在电源管理和USB-C PD方案的领先地位,终推出这首款集成的同步整流器和自主控制器产品,简化次级端系统设计。FAN6390是安森美半导体US
[物联网]
Intersil推出输出跟踪及时序控制特性的同步降压稳压器
ISL8002B具有适合负载点转换应用的小尺寸和高频开关特点。 美国加州、MILPITAS--- 2015年3月10日 创新电源管理与精密模拟解决方案领先供应商Intersil公司(纳斯达克交易代码:ISIL)今天宣布,推出输入电压范围为2.7V - 5.5V,最大连续输出电流为2A的ISL8002B同步降压(步降)开关稳压器。该器件的2MHz开关频率提供出色的瞬态响应性能,其可编程软启动以及FPGA和微处理器的输出跟踪及时序控制等关键特性可提高负载点转换应用,例如网络、工厂自动化、仪表和医疗设备应用的系统可靠性。 ISL8002B的多项创新特性提高了系统可靠性水平。例如,其FPGA和MPU的
[电源管理]
基于CAN总线的电梯呼梯控制器的设计与实现
1 引言
目前电梯的生产情况和使用数量成为一个国家现代化程度的标志之一。电梯是机电一体的高层建筑的复杂运输设备。它涉及机械工程、电子技术、电力电子技术、电机与拖动理论、自动控制理论等多个科学领域。电梯呼梯控制器是电梯的一个重要组成部分, 位于每一层楼电梯门的左边或者右边,是每一层楼的呼叫装置,用于给出每一楼层的呼叫请求信息,并显示电梯当前运行情况。乘客可以通过显示器、按键等了解到电梯运行的大量信息。本文采用CAN总线技术设计呼梯控制器,各控制器之间只需一对双绞线以一定的网络拓扑结构连接即可,安装极为方便,且可靠性高。对于不同楼层数的控制系统只需在CAN总线中加入相应数目的呼梯控制器即可,主控制器硬件软件不需做任何改动
[嵌入式]
DSP与以太网卡的接口技术研究
摘要: 通过分析NE2000网卡与微机ISA总线的接口电路,用DSP芯片TMS320F206结合外围电路模拟ISA时序,实现了DSP与NE2000网卡的软、硬件接口,从而使ISA总线开型网卡脱离了PC机环境的制约。
关键词: 网卡 ISA总线 DSP
以太网是当今最受欢迎的局域网之一,它包括了OSI七层模型的物理层和数据链路层的全部内容 。在以太网中,网卡用于实现802.3规程,其代表是NOVELL公司的NE2000和3COM公司的3C503、3C508、3C509等网卡。对网卡直接编程就可以实现局域网内任意站点之间的通信而完全抛开了网络操作系统,这就启发我们能否在脱离PC环境的条件下实现
[应用]