精 品[精品]00在860里增加TL16C554多串口芯片驱....docVIP

精 品[精品]00在860里增加TL16C554多串口芯片驱....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文档。上传文档
查看更多
精 品[精品]00在860里增加TL16C554多串口芯片驱...

2011精品 ksdowe 在860里增加TL16C554多串口芯片驱动(一) 一.设备概述 MPC860t有4个SCC(serial communications controller串口通讯控制器)和2个SMC(serial management controller串口管理控制器),一共可以扩展6个串口。但笔者开发的通讯控制器项目中,由于考虑到需要扩展8个或更多串口,SCC和SMC扩展显然不能满足要求,需要需求一种新的可扩展的串口芯片 。 我们采用两个TL16C554芯片来解决这个问题。 一个TL16C554芯片集成了四个ST16550 ACE(异步通讯元件ASYNCHRONOUS COMMUNICATIONS ELEMENT)。 二.串口驱动简介 I/O System yyChan2 yyChan1 xxChan2 xxChan1 yyDrv xxDrv ttyDrv 注意:此处xxDrv,yyDrv表示一个特定的驱动程序,下同 . ttyDrv 虚拟驱动,用以 .管理I/O System .调用实际的驱动程序来管理硬件 . Model Target Agent(中断或轮巡模式) Application I/O System ttyDrv(中断模式) xxDrv . xxDrv支持: 标准I/O System接口 Target Agent接口 两种模式(中断interrupt,轮巡poll) .回调CallBacks 允许高层协议来设定驱动怎样收发数据 设备 驱动 有两个回调(驱动调用) 高层协议 getCallback putCallBack put回调:传送一个从设备读到的字符到高层协议 get回调:从高层协议取得一个字符以便写到设备 代码实现 usrConfig.c 一般性代码 sysSerial.c 特定执行代码 xxDrv.c 设备特定代码 三.详细解说(调用和实现部分) usrConfig.c,sysSerial.c 注意:由于我们采用了多种设备实际的驱动(SMC和16C554),所以在sysSerial.c里需要整合,整合的函数包括sysSerialHwInit(), sysSerialHwInit2 (),sysSerialChanGet(),sysSerialReset() 解读usrConfig.c 先看usrConfig.c里与串口有关的部分(前面部分是早期版本的,不予理会),这里调用了ttyDrv(),然后用ttyDevCreate(),sysSerialChanGet()在sysSerials.c里定义,它把设备的编号同一个SIO_CHAN类型的结构关联起来,而这个结构在是至关重要的.(注意,如果系统采用串口调试,则该串口号被保留起来) ttyDev()作的工作: 调用iosDrvInstall安装ttyDrv到设备表(使用ttyDrv和tyLib的入口) ttyDevCreate()作的工作: 申请并初始化设备描述 调用tyDevinit()初始化tyLib 初始化selectLib 建立输入输出环行缓冲 创建信号量 调用iosDevAdd()增加设备到设备列表 安装tyLib的程序和输入输出回调 使设备开始中断模式 #ifdef INCLUDE_TYCODRV_5_2 #ifdef INCLUDE_TTY_DEV if (NUM_TTY 0) { tyCoDrv (); /* install console driver */ for (ix = 0; ix NUM_TTY; ix++) /* create serial devices */ { sprintf (tyName, %s%d, /tyCo/, ix); (void) tyCoDevCreate (tyName, ix, 512, 512); if (ix == CONSOLE_TTY) strcpy (consoleName, tyName); /* store console name */ } consoleFd = open (consoleName, O_RDWR, 0); /* set baud rate */ (void) ioctl (consoleFd, FIOBA

文档评论(0)

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

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

1亿VIP精品文档

相关文档