欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    基于CAN总线的非智能适配卡设计.docx

    • 资源ID:17791726       资源大小:20.07KB        全文页数:9页
    • 资源格式: DOCX        下载积分:15.18金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要15.18金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    基于CAN总线的非智能适配卡设计.docx

    基于CAN总线的非智能适配卡设计ronggang导语:通过解决计算机ISA总线与CAN控制器SJA1000的逻辑配合与时序配合可完成基于CAN总线的非智能适配卡设计控制器局域网CANControllerAreaNetwork是目前被批准为国际标准的少数现场总线之一。CAN网络可采用多主方式工作。它采用非破坏性的总线仲裁技术,其信号传输和控制采用短帧构造,因此具有较强的抗干扰才能和低耦合性;CAH网络的通讯速率范围为5kbs/10kmlMbs/40m,驱动节点数可达110个。它的传输介质可以是双绞线、同轴电缆或者光纤,选择特别灵敏;每帧信息都有CRC校验及其它检错措施,因此数据出错率极低,可靠性很高;当其传输的信息出错严重时,节点可自动断开与总线的联络,以使总线上其它的操纵不受影响。固然目前PCI、USB等总线技术得到了快速开展,但在大量应用的测试微机及工控机中,用的最多的还是ISAIndustryStandardArchitecture.工业标准体系构造总线。ISA总线具有16位数据宽度,最高工作频率为8MHz,数据传输速率到达16MB/s,地址总线有24条,可寻址16MB的地址单元,其总线信号分为5类,分别为地址线、数据线、控制线、时钟线和电源线。为理解决CAN控制器SJA1000与ISA总线各信号线的时序配合与逻辑配合问题,笔者设计了一种基于CAN总线的非智能适配卡。该适配卡已应用于笔者研制的"基于CAN总线的运动控制系统"中,运行情况良好。非智能型ISA总线CAN适配卡的总体构造CAN控制器SJA1000的地址数据总线是分时复用的,通过ALE信号的下降沿可锁存总线上的地址信号;ISA总线上的地址和数据总线是单独提供的,它不能直接和SJA1000的地址数据总线相连。本设计利用地址译码电路来对地址信号线进展译码,进而为CAN适配卡分配出一定的端口地址。然后再利用74HC373芯片的数据锁存功能锁存第一次I/O操纵中通过ISA数据总线传送的数据信号,以便作为访问CAN控制器SJA1000中存放器的地址信号,最后在第二次I/O操纵中完成对SJA1000中相应地址存放器的读写操纵。其适配卡的总体构造如图1所示。图1中,地址锁存器74HC373可看作SJA1000的地址端口,而SJA1000本身可看作SJA1000的数据端口,另外还有对SJA1000进展硬件复位的复位端口。图中的基地址译码电路以AEN作为使能信号,对A2A9地址信号进展译码就可得到适配卡的基地址;组合AO和A1地址信号可得到各端口的偏移地址。SJA1000与ISA的通讯采用两次I/O操纵的方法,第一次先往地址端口送地址,第二次再对数据端口进展访问。这里所讲的地址及数据端口都是对SJAl000而言的,通过ISA总线的数据线可获得被访问的SJA1000存放器的地址及所传送的数据。控制端口译码电路可将CPU送来的控制信号和地址信号按一定的逻辑关系进展组合,进而生成一组新的功能信号作为接口控制信号。通过SJA1000复位电路可对SAJ1000进展复位,详细操纵可采用上电复位、程序复位及按键复位三种硬件复位方式。适配卡硬件的设计基地址译码电路设计图2所示是一种详细的基地址译码电路。一般情况下,根据系统需要,地址译码电路可对ISA地址线的端口地址译码,并可用AOA9来表示。基地址译码电路对A9A2进展译码,那么可作为卡上端口的基地址。图2中,74HC688是一个8位量值比拟器,当时Pi=Qii=07,P=Q的反端输出低电平。当ISA总线的AEN为高电平时,总线工作在DMA方式;而当AEN为低电平时,CPU拥有对总线的控制权。非智能型适配卡的工作经过实际上就是CPU对I/O的操纵经过,期间,AEN始终为低电平,可用于控制74HC688的选通端G反。只有在I/O操纵时,才允许它选择地址。由于使用的是拨码开关,用户可预先设定适配卡的基地址。卡上各端口的偏移由A1和A0选择,并可通过软件控制,本设计中的定义地址端口偏移为00,数据端口偏移为01,复位端口偏移为11。控制信号产生电路该适配卡的控制信号产生电路如图3所示。该电路的主要作用是把CPU送来的控制线和地址线按照一定的逻辑关系进展组合,以生成一组新的功能信号输出。该信号可作为接口控制信号去控制SJA1000、74HC373、74HC245等芯片的工作状态。由于基地址译码电路的输出信号为P=Q的反低电平有效,SJA1000地址端口偏移地址为00H,数据端口偏移地址为01H,因此,根据控制逻辑,适配卡中各芯片的控制信号逻辑表达式为:适配卡在工作经过中,各芯片的逻辑时序关系是:当74HC373输出数据有效时,74HC245输出为高阻态;当74HC373输出呈高阻态,且SJA1000的数据直接传回ISA总线时,74HC245输入输出工作正常。详细来讲,假设CAN的基地址为300H,且访问SJA1000是分两次I/O操纵完成的,那么,第一次往端口300H送出的数据可在写信号的后沿被锁存在74HC373中,这个操纵中,74HC245的E与74HC373的LE端有效,而74HC373的OE端为高电平,74HC373输出端为高阻态;当第二次访问数据端口301H时,SJA1000被选中,此时CPU可对SJA1000的相应单元进展读/写操纵。详细的操纵经过分为读、写两种情况。当第二次I/O操纵到来时,SJA1000会在BALE信号下降沿将第一次I/O操纵时锁存在74HC373中的数据作为地址锁存,该经过中,74HC245的E反为高电平,输出呈高阻态,74HC373的OE的反为低电平,输出端有效,可向SJA1000传送地址信号。当地址被SJA1000锁存以后,此时假如进展的是读操纵,那么,在读信号有效期间低电平,74HC373的输出允许OE反端为高电平,74HC373输出端呈高阻态,这时SJA1000可将选中单元的存放器内容输出到数据总线,并通过74HC245驱动送入CPU中。而在地址锁存后,假如进展的是写操纵,那么,74HC373的输出允许端始终有效,此时可在写信号有效期间,将数据写入SJA1000的相应单元中。计算机通过ISA总线对CAN控制器SJA1000进展读写的时序分别如图4和图5所示。SJA1000正常工作前,只有通过复位引脚对其进展可靠的硬件复位,才能对SJA1000中的存放器进展正确的读写操纵。使SJA1000可靠复位的电平持续最小时间为0.1s,PC系统复位电平持续时间可达几微秒。系统复位信号RESET在系统电源接通时为高电平,经反向器后可直接用于对SJA1000进展复位。图6所示是适配卡的复位电路,对SJA1000的复位具有开机上电复位、程序复位以及按键复位等三种方式。在图6中,A1和A0经过与非门74LSl0后,为复位电路产生的偏移地址为11,该地址信号与IOW反、P=Q反等信号经过逻辑组合,同时配合程序设计可产生对SJA1000的复位信号。程序设计时只需对复位端口写入一个数据即可实现程序复位。而按键复位那么可在系统运行出现通讯故障时,直接用于对CAN控制器SJA1000进展硬件复位。适配卡的软件设计软件设计的关键局部是CAN通讯程序的设计。通讯程序流程如图7、8、9所示可分为三局部:CAN初始化程序、接收程序、发送程序。初始化是通讯的前提,主要完成对CAN控制器的一些存放器的设置。由于SJA1000支持中断操纵,因此可以用中断效劳程序来完成数据的接收和发送,以进步系统的工作效率。实际上,只有在复位形式下才可以对SJA1000进展初始化,初始化主要包括工作方式的设置、接收滤波方式的设置、接收屏蔽存放器和接收代码存放器的设置、波特率参数设置和中断允许存放器的设置等。完成初始化后,即可将SJA1000设置为工作状态,以进展正常的通讯。发送子程序负责节点报文的发送。发送时,读取状态存放器并对各位进展适当判定,并将待发送的数据按特定格式组合成一帧报文,送入SJA1000发送缓存区中,然后启动SJA1000发送;接收子程序那么负责节点报文的接收以及其它情况的处理。在处理接收报文的经过中,还要对总线关闭、错误报警、接收溢出等情况进展处理。CAN适配卡与计算机可采用中断方式通讯。但在WINAPI中不能直接控制中断,只有在操纵系统底层为CAN适配卡编写虚拟设备驱动程序VxD才可以利用中断。这需要在虚拟设备驱动程序中将中断虚拟化,并在中断事件响应函数中编写所需代码,同时为应用程序提供访问接口。应当留意的是:计算机通过ISA总线对CAN适配卡上的SJA1000进展访问采用的是两次I/O操纵,第一次往地址端口送地址,第二次对数据端口进展访问。其详细的实当代码如下:/向指定的SJA1000存放器地址为addr写一个字节数据data,CAN_BASE为基地址voidCanIRQ:writeByteintCAN_BASE,unsignedcharaddr,unsignedchardata_outpCAN_BASE,addr;_outpCAN_BASE+1,data;/从指定的SJA1000存放器地址为addr读一个字节数据dataunsignedcharCanIRQ:ReadByteintCAN_BASE,unsignedcharaddrunsignedcharresult;_outpCAN_BASE,addr;result=_inpCAN_BASE+1;returnresult;在访问SJA1000的程序中,可以直接调用以上两子函数。这样,其发送程序段代码为:BoolCanIRQ:CanTransintCAN_BASE,unsignedcharpTransBufstatus=ReadByteCAN_BASE,SR;/SR为状态存放器地址fori=0;iWriteByteCAN_BASE,pTFansBuf,ptbuf;/pTransBuf为发送缓冲区地址ptbuf+;pTransBuf+;通过解决计算机ISA总线与CAN控制器SJA1000的逻辑配合与时序配合可完成基于CAN总线的非智能适配卡设计。该适配卡现已成功地应用于笔者所研制的基于CAN总线的测控系统中。实际上,假设在适配卡上增加CAN通讯控制器,也可使一卡带多条CAN总线,以增加网络节点,扩大网络规模。另外,还可以在适配卡的应用程序中,根据应用系统需要编写各种监控程序来扩展系统功能。

    注意事项

    本文(基于CAN总线的非智能适配卡设计.docx)为本站会员(安***)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开