首页 > 技术文章 > ARM > 嵌入式系统中可配置式GPIO模拟SPI总线方法

嵌入式系统中可配置式GPIO模拟SPI总线方法

52RD.com 2007年10月25日 电子技术            评论:3条 查看 我来说两句
  在嵌入式系统处理器中有相当一部分处理器不带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上都得到验证。

(52RD.com)
读取...
相关报道
评 论
3楼 eduann 发表于 2012-9-30 13:39 回复

       信盈达集结优势师资,为您筹备了“魔鬼嵌入式实训营”,总计15周隆重推出:嵌入式实训(ARM+Linux)开发工程师班(周末/晚班/全日班)真实模拟企业中研发模式:团队开发、以用导学、以练代学;使您不仅掌握嵌入式开发的流程,更深入了解到嵌入式项目开发的精髓,打造实战实用的嵌入式系统开发工程师,真正体验在产品开发中学习技术,在学习技术中开发产品。?学院介绍 信盈达嵌入式实训学院)依托公司多年的行业服务背景和项目开发团队。由多年从事嵌入式控制器开发经验的工程师来指导学员的实训学习。在学习的过程中,哪些知识是重中之重,哪些知识可以一带而过,哪些知识是为后期学习作铺垫的,哪些知识点是可以在长期实际研发工作中使用的到的,最小的代价去学到最扎实的单片机嵌入式开发的工作能力

技术咨询:15813882609安老师  QQ122330119 

工程师师傅带徒弟方式,结合学员的实际情况及现阶段热门技术要求来分主次系统进行讲授,从而达到事半功倍的效果。课程大纲 ?实训过程= 补强阶段+ 实训ARM阶段+实训LINUX阶段+ 项目实战+ (推荐就业阶段) ?补强阶段 1、熟悉常用电子元器件、常用芯片知识及其使用方法; 2、介绍电子产品开发、生产的基本流程; 3、熟悉C语言、C++编程及编程 4、嵌入式概要、仿真软件、工具、开发平台使用 5、嵌入式C语言典型范例、数据类型 6、嵌入式C经典语句详解、函数、数组、指针精讲 7、字符IO和输入输出 8、存储类、链接和内存管理 9、宏定义、复杂声明 10、结构体、共用体和枚举 11、嵌入式高级议题:编程经典案例分析、编程规范、编程优化、编程可靠性12、嵌入式常见编程错误:“野指针”、“异常宏定义”“异常数组定义”等分析 理论实操阶段一:ARM开发阶段 本阶段课程主要帮助学员了解ARM体系结构及工作原理,掌握ARM指令集,学会操作ARM处理器基本方法

2楼 steven-su 发表于 2010-4-7 16:31 回复
顶一个!
1楼 lovelace 发表于 2009-11-16 15:23 回复
做了几年硬件,想做系统设计了!
共有评论3篇 查看所有评论
文章导航 Navigation
精彩评论 Commentmore...
赞助商链接 Support
特别推荐 Recommend
彩票开奖查询 甘肃11选5-首页 500万彩票网 500万彩票网 500万彩票网 500w彩票 500万彩票网 500万彩票网 500w彩票 500w彩票 <天天棋牌>| <女生小说>| <小说教育网作家中心>| <混沌剑神>| <玄幻小说排行榜完本>| <小说教育网作家中心>| <完美世界txt下载txt>| <完美世界游戏下载>| <高h禁忌恋txt小说下载>| <天天小说网>| <校园全能高手小说>| <bl高h文 书包网>| <完本小说>| <exo小说阅读网np>| <免费完结言情小说>| <辰东完美世界小说下载>| <小说阅读网作者专区>| <完美世界小说最新>| <神荒>| <波克棋牌>| <刘猛小说txt下载>| <青春校园爱情小说>|