DSP虚拟I2C总线软件包的设计及应用实例.docVIP

DSP虚拟I2C总线软件包的设计及应用实例.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
DSP虚拟I2C总线软件包的设计及应用实例.doc

  DSP虚拟I2C总线软件包的设计及应用实例|第1 ... 引言 数字信号处理器(DSP)在各领域中的应用已日趋广泛,其中TI(TEXASINSTRUMENT)公司的TMS320系列芯片占据了主导地位。TMS320F206(简称F206)由于具有片内32K字的Flash,支持JTAG扫描端口的仿真调试,并支持程序的串行下载,便于开发设计及产品的软件升级,因而在中高档仪器开发中受到青睐。   DSP的处理速度虽然较高,但直接支持的I/O口线较少,控制能力相对较弱,因而与外部器件接口采用串行方式较为适合。常用的串行接口和串行总线有UART、I2C总线,由于I2C总线提供了较完善的总线协议,且接口电路简单,因而得到广泛的应用。目前,已有很多外围器件支持I2C接口,但多数MCU并不直接支持I2C总线,因而采用I/O口线模拟I2C的方式成为一种通用解决方案。但由于I2C总线协议的复杂性及操作管理的特殊性,仍给此类方式的开发造成了较大不便。好在文献[1]中提出了一种按平台模式设计的、适用于80C51的虚拟I2C总线软件包,大大简化了80C51的I2C接口程序设计,使用户无需了解I2C总线协议的细节,即可实现相应的接口。文献[2]中也给出了一种用于MSP430单片机的软件包。由于DSP尚无此类软件包,为简化DSP的此类I2C接口程序设计,本文参照文献[1]中的设计原则,设计了一种适用于TMS320C2XX系列DSP开发的软件包。 1虚拟I2C软件包的设计 根据文献[1]中所提到的最佳包容性设计、后归一化设计、前归一化设计原则,软件包进行了如下定义。 (1)适用范围 ①适用主发送和主接收方式。I2C总线有4种工作方式:主发送、主接收、从发送、从接收。因实际DSP多工作于I2C总线的主方式,因而软件包设计为主方式。 ②适用TMS320C2XX系列与I2C总线外围器件的接口,支持对外围器件N字节的读写,通信方式为对虚拟节点寻址后点对点的读写。 ③模拟I/O口线可选择4根通用I/O口线(I/O0~I/O4)中的任意两根。 (2)软件包结构设计 TMS320C2XX系列产品,基本包括4根通用I/O口线I/O0~I/O4(由于XF仅能作为输入口线,BIO仅能作为输出口线,因而暂不考虑)。它们的输入输出方向由ASPCR的低4位来设定,相应口线状态的设定或读取由IOSR寄存器控制。但此处DSP与80C51有所不同,口线的输入输出状态不是自动切换的,且ASPCR、IOSR寄存器都不支持位寻址方式,因而在进行I2C总线工作方式模拟时较为繁琐。为避免所用寄存器其它状态位的改变,需通过较多的与、或操作来改变指定I/O口线的状态,因而本软件包与80C51的虚拟I2C软件包结构稍有不同。当然,这些均在软件包内部完成,使用者不必了解具体细节,用户接口同样简单易用。 ①软件包组成。为模拟I2C总线的操作时序,软件包中包括了2个宏定义和12个子函数。 (a)时序模拟子程序 Sendb--发送起始标志,启动I2C总线;senda--发送确认标志; Sendna--发送非确认标志;Sende--发送结束标志。 (b)操作模拟子程序 geta--接收确认标志;sendd--发送8位数据; getd--接收1个字节数据。 (c)数据读写子程序 --将模拟数据口线A配置为输入口线; sdaoutm--将模拟数据口线配置为输出。 因DSP的工作频率一般远高于I2C总线的操作频率,因而这里需专用的延时子程序降低模拟时钟口线频率。本文所给出的源程序为F206采用40MHz晶振时的情况,用户使用时可随实际情况调整延时时间。 ②软件包符号定义。软件包中包括如下符号定义: VSDA、VSCL--分别定义了模拟数据口线和模拟时钟口线对应的屏蔽位,因DSP中对通用I/O口线的操作不能通过位操作来实现,因而仅能屏蔽位来定义,如采用IO3模拟数据线、IO2模拟时钟线,则可定义IO3为08h、IO2为04h; RAM0--为数据暂存用的临时存储单元; RIO--为用于保存I/O口线当前状态的存储单元; SLA--用于保存总线上节点地址并确定传输方向的存储单元; NUMBYTE--待发送或接收的字节数存储单元; MTD--发送数据缓冲区; MRD--接收数据缓冲区。 以上符号中RAM0、RIO、SLA、NUMBYTE为页内地址,与当前的页指针DP内容设置有关;MTD、MRD为绝对地址,与DP内容无关。 ③资源占用。使用了辅助寄存器AR0、AR1、AR2、AR6、ACC、ASPCR、IOSR等资源。 ④应用接口。软件包将ouseg(this) 其中SCL为时钟输入端,数据随该时钟信号同步输入器件或从器件输出。此引脚上的输入缓冲器始终激活。SDA端为双向引脚,用于串行数据的输入输出;具有

您可能关注的文档

文档评论(0)

ggkkppp + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档