历史上的今天
返回首页

历史上的今天

今天是:2025年02月17日(星期一)

正在发生

2018年02月17日 | 基于ENC28J60嵌入式以太网/CAN网关设计

2018-02-17 来源:eefocus

  随着Internet的普及,实现智能家居远程控制不再是人们的梦想,所谓远程控制,是指管理人员在异地通过计算机网络异地拨号或双方都接入Internet等手段,联通需被控制的计算机,将被控计算机的桌面环境显示到自己的计算机上,通过本地计算机对远方计算机进行配置、软件安装程序、修改等工作。远程唤醒(WOL),即通过局域网络实现远程开机。CAN是控制器局域网络(Controller Area Network, CAN)的简称,是由研发和生产汽车电子产品着称的德国BOSCH公司开发了的,并最终成为国际标准(ISO118?8)。是国际上应用最广泛的现场总线之一。 在北美和西欧,CAN总线协议已经成为汽车计算机控制系统和嵌入式工业控制局域网的标准总线,并且拥有以CAN为底层协议专为大型货车和重工机械车辆设计的J1939协议。近年来,其所具有的高可靠性和良好的错误检测能力受到重视,被广泛应用于汽车计算机控制系统和环境温度恶劣、电磁辐射强和振动大的工业环境。CAN与以太网采用的网络协议,为计算机网络中进行数据交换而建立的规则、标准或约定的集合。例如,网络中一个微机用户和一个大型主机的操作员进行通信,由于这两个数据终端所用字符集不同,因此操作员所输入的命令彼此不认识。为了能进行通信,规定每个终端都要将各自字符集中的字符先变换为标准字符集的字符后,才进入网络传送,到达目的终端之后,再变换为该终端字符集的字符。当然,对于不相容终端,除了需变换字符集字符外。其他特性,如显示格式、行长、行数、屏幕滚动方式等也需作相应的变换。

  1 网关的硬件设计

  1.1 系统硬件结构

  该系统的硬件部分主要由ARM、以太网接口、CAN接口、高速存储器、JTAG口、复位电路和电源等组成,其系统硬件结构如图1所示。ARM移植TCP/IP通信协议和CAN协议,可完成以太网协议和CAN总线协议转换,实现以太网接口和CAN接口通信数据的透明传输。以太网(Ethernet)指的是由Xerox公司创建并由Xerox、Intel和DEC公司联合开发的基带局域网规范,是当今现有局域网采用的最通用的通信协议标准。以太网络使用CSMA/CD(载波监听多路访问及冲突检测)技术,并以10M/S的速率运行在多种类型的电缆上。以太网与IEEE802·3系列标准相类似。

  1.2 主控制器的选择

  微处理器选用PhiIips公司ARM7TDMI内核的32位微控制器LPC2294,与一般单片机相比,LPC2294可嵌入操作系统。LPC2294内嵌256 KB的高速FLASH存储器和16 KB的静态RAM,多个外部中断和串行口,LPC2294内部还集成了CAN控制器,只要加上CAN总线收发器就可以构成CAN节点,从而大大简化了硬件电路。微处理器用一片或少数几片大规模集成电路组成的中央处理器。这些电路执行控制部件和算术逻辑部件的功能。微处理器与传统的中央处理器相比,具有体积小,重量轻和容易模块化等优点。微处理器的基本组成部分有:寄存器堆、运算器、时序控制电路,以及数据和地址总线。微处理器能完成取指令、执行指令,以及与外界存储器和逻辑部件交换信息等操作,是微型计算机的运算控制部分。它可与存储器和外围电路芯片组成微型计算机。自从人类1947年发明晶体管以来,50多年间半导体技术经历了硅晶体管、集成电路、超大规模集成电路、甚大规模集成电路等几代,发展速度之快是其他产业所没有的。半导体技术对整个社会产生了广泛的影响,因此被称为“产业的种子”。中央处理器是指计算机内部对数据进行处理并对处理过程进行控制的部件,伴随着大规模集成电路技术的迅速发展,芯片集成密度越来越高,CPU可以集成在一个半导体芯片上。

  1.3 系统电源电路和复位电路

  在该设计中,需要使用5 V,3.3 V和1.8 V的直流稳压电源。其中,5 V电源由LM317L三端可调稳压器产生;3.3 V和l_8 V电源由可调节输出电压的SPXlll7产生。系统复位电路的可靠性对整个系统的稳定起着非常重要的作用。在复位电路中采用了电压监控芯片TPS383K33,它是10 ms或200。ms可选的上电复位发生器,具有防按键抖动的手动复位输入功能,允许组成多个IC的菊花链电压监控等。复位电路如图2所示。图2中,nRST连接到LPC2294的复位脚RESET;nTRST接以太网控制器ENC28J60的复位引脚。

  1.4 CAN总线接口

  CAN总线接口由LPC2294和CAN总线收发器等构成。这里采用带隔离的高速cAN收发器CTMl050T,其主要功能是将CAN控制器的逻辑电平转换为CAN总线的差分电平,并且具有(DC2500V)隔离功能、ESD保护功能及TVS管防总线过压功能,其内带隔离器,可减少外部相关电路的设计。CAN总线接口电路如图3所示。CAN总线通过CAN收发器接口芯片82C250的两个输出端CANH和CANL与物理总线相连,而CANH端的状态只能是高电平或悬浮状态,CANL端只能是低电平或悬浮状态。这就保证不会在出现在RS-485网络中的现象,即当系统有错误,出现多节点同时向总线发送数据时,导致总线呈现短路,从而损坏某些节点的现象。而且CAN节点在错误严重的情况下具有自动关闭输出功能,以使总线上其他节点的操作不受影响,从而保证不会出现象在网络中,因个别节点出现问题,使得总线处于“死锁”状态。而且,CAN具有的完善的通信协议可由CAN控制器芯片及其接口芯片来实现,从而大大降低系统开发难度,缩短了开发周期,这些是仅有电气协议的RS-485所无法比拟的。

  1.5 以太网接口

  在系统设计中,采用ENC28J60作为网络接口芯片。ENC28J60是美国微芯科技公司推出的28引脚独立以太网控制器,内置以太网物理层器件(PHY)及介质访问控制器(MAC),可按以太网协议可靠地收发信息包数据。另外,它还具有可编程8 KB双端口SRAM缓冲器,数据传输速率高达10 Mb/s。ENC28J60具有多种集成功能,如CRC校验、可编程过滤、可自动评价、接收或拒收多种信息包、数据滤波等功能,能高效率地进行信息包的存储、检索和修改,可减轻主控微处理器的内存负荷。ENC28J60采用标准的SPI串行接口,只需4条连线即可实现与微处理器相连,而且它只有28个引脚,可以大大简化相关设计,减小空间。网络插座采用RJ45插座HR911102A,其内置网络变压器、状态显示灯和电阻网络,具有信号耦合电气隔离、阻抗匹配、抑制干扰等特点,可提高系统抗干扰能力和收发的稳定性。以太网接口电路如图4所示。图4中ENC28J60的2个中断引脚INT和WOL分别接LPC2294的EINTl,EINT2;ENC28J60的SPI脚SO,SI,SCK,CS分别接LPC2294的脚MISO1,MISll,SCKl,CSl,2个专用的引脚(LEDA,LEDB)用于连接HR911102A的LEDG,LEDY,进行网络活动状态指示。

  1.6 外扩存储器接口

  由于LPC2294内部只有16 KB的RAM,不能满足以太网数据存储的空间要求,该设计扩展了256 KB的外部存储器,选用RAMTRON公司的存储器芯片FM25256。FM25256是采用先进的铁电技术制造的非易失性存储器,具有比其他非易失性存储器高得多的读写操作次数,可以承受超过一万亿次的读写操作。存储器接口电路如图5所示。

  图5中FM25256的SPI脚SO,SI,SCK,CS分别与LPC2294的MISOO,MISl0,SCK0,CS2脚相连。写保护引脚WP与LPC2294的P2.21相连。FM25256主要用来存储以太网数据。

  2 网关软件设计

  网关的软件设计采用嵌入式操作系统μC/OS-Ⅱ,它具有较小的内核结构,开发成本小,执行效率高,移植也容易。初始化文件通过JTAG下载到网关并保存在FLASH中。

  2.1 CAN通信软件设计

  该设计的关键是编写CAN驱动程序,主程序通过调用CAN驱动程序实现接口数据的收发,驱动程序包括CAN控制器的初始化、接收数据、发送数据和总线异常处理。

  2.1.1 CAN控制器的初始化

  初始化操作包括硬件使能CAN、软件复位、设备报警界限、设置总线波特率、设置中断工作方式、设置CAN验收过滤器工作方式、设置控制器的工作模式和启动CAN等。LPC2294片内外设与引脚的连接由引脚连接模块控制。CAN控制器的硬件使能就是通过软件设备GPIO寄存器来控制多路开关,将特定的引脚与CAN控制器连接起来。

  2.1.2 数据的接收与发送

  LPC2294的每个CAN控制器中有3个发送缓冲区,发送数据时先查询CANSR寄存器是否空闲,若空闲才能写入数据,然后判断报文的类型,根据报文类型调用相应的发送函数,即对数据进行封装并写入发送缓冲区,最后调用发送命令。为了提高效率,接收数据采用中断方式,首先在CANopen的初始化程序中要使能接收中断,当有中断发生,读取CANICR寄存器,判断接收中断标志是否置位。

  2.1.3 异常处理

  在总线发生严重故障的情况下,CAN节点脱离总线,此时下述寄存器位被置位为CANSR的BS位、CANIR的BEI位和EI位(如果使能)和CAN-MOD的RM位。RM将许多CAN控制器功能复位和禁止。软件下一步必须置零RM位。发送错误计数器将递减计数总线释放条件(11个连续的隐性位)的第128个错误。

  2.2 以太网通信软件设计

  2.2.1 ENC28J60的初始化

  LPC2294。对ENC28J60的各种操作均通过SPI接口进行,包括寄存器的设置、数据的发送和接收。LPC2294的SPI工作在主动方式,即ENC28J60的SPI时钟信号由LPC2294提供。

  2.2.2 TCP/IP协议

  该设计采用嵌入式系统中广泛应用的LwIP协议栈。LwIP TCP/IP实现的特点是在保持协议主要功能的基础上减少对RAM的占用,这使协议栈LwIP适合在低端嵌入式系统中使用。LwIP协议栈应用到的协议有ARP,IP,IcMP,TCP,UDP,其具有滑动窗口、拥塞控制和接收分片的分组功能。在LwIP中可以有多个网络接口,每个网络接口都对应一个strut netif()。netif包含了相应网络接口的属性、收发函数。采取调用netif的方法netif→inpln()及netif→output()进行以太网PACket的收、发等操作。

  2.3 以太网/CAN双向协议转换

  整个设计中最为关键的就是CAN协议与TCP/IP协议的相互转换。协议转换流程图如图6所示。

  其具体过程如下:当网关接收到数据,首先判断数据类型,如果是从CAN接口接收CAN协议报文,便分离出数据部分,再将报文数据部分按系统规定的应用层格式进行封装,然后将应用层数据存入以太网接口发送缓冲区,由该接口在数据前面依次添加TCP或UDP头、IP头、以太帧头,最后封装成以太帧后,通过以太网接口发往以太网。若接收到的以太网数据,数据转换过程相反,依次去掉IP头、TCP或UDP头和应用层头,再将应用层数据按CAN报文格式封装好后存入CAN接口发送缓冲区,由CAN接口发往CAN网络中相应设备。若应用层数据长度大于8 B,则还需将数据以8 B为一组进行拆分。

  3 结 语

  符合IEEE802.3协议的ENC28J60不仅能提供以太网通信的相应功能,而且体积小,能够简化设计,可以设计出较小的嵌入式网关。用上述方法构建的通信网关可实现以太网与CAN总线之间的协议转换,为以太网与CAN总线网络的互联提供了一种传输速度快,成本低,稳定性和安全性高的解决方案。


推荐阅读

史海拾趣

AF International公司的发展小趣事

随着公司业务规模的不断扩大,AF International意识到建立完善的质量管理体系至关重要。公司引进了先进的质量管理理念和方法,建立了严格的质量控制流程,确保从原材料采购到产品生产的每一个环节都符合质量标准。同时,AF International还加强了对员工的培训和教育,提高员工的质量意识和操作技能。这些措施使得公司的产品质量得到了有效保障,赢得了客户的广泛赞誉。

DC Components公司的发展小趣事

为了进一步扩大市场份额,DC Components公司积极开拓国际市场。公司通过与全球客户的合作,将产品出口到多个国家和地区,实现了全球化布局。这种市场拓展策略不仅提升了公司的品牌影响力,还为公司的未来发展打开了更广阔的空间。

德力康(DLK)公司的发展小趣事

作为一家有社会责任感的企业,DLK公司始终将社会责任和可持续发展作为企业发展的重要内容。公司积极参与公益事业和社会活动,为当地经济发展和社会进步做出了积极贡献。同时,DLK公司注重环保和节能工作,采用环保材料和生产工艺,减少了对环境的污染和破坏。通过履行社会责任和推动可持续发展,DLK公司赢得了社会的广泛认可和尊重。

请注意,以上故事框架仅供参考,具体的故事内容需要根据公司的实际情况和具体事件进行编写。

泽耀科技(Ashining)公司的发展小趣事

随着企业规模的扩大和影响力的提升,泽耀科技(Ashining)开始积极承担社会责任,推动可持续发展。公司注重环保和节能技术的应用,致力于生产环保型电子产品,减少生产过程中的能源消耗和环境污染。同时,泽耀科技还积极参与社会公益事业,为社会的发展贡献自己的力量。

这些故事展示了泽耀科技(Ashining)在电子行业中的发展历程和取得的成就,也体现了公司不断创新、追求卓越的精神。未来,泽耀科技将继续秉持这一精神,为电子行业的发展贡献更多的力量。

Electro Technik Industries公司的发展小趣事

作为一家具有社会责任感的企业,ETI始终关注环保问题。公司积极推广绿色生产理念,采用环保材料和工艺进行生产。同时,ETI还投入大量资金用于环保设施的建设和运营,减少了对环境的污染。此外,ETI还积极参与社会公益活动,为环保事业贡献自己的力量。这些举措使ETI在业界树立了良好的形象,赢得了社会各界的广泛赞誉。

Gespac Inc公司的发展小趣事

随着电子技术的快速发展,ETI意识到只有不断创新才能在竞争中立于不败之地。公司加大了对研发的投入,积极引进国内外先进技术,并鼓励员工提出创新性的想法。在一次偶然的实验中,ETI的研发团队成功研发出了一种具有高效能、低功耗特点的电子元器件,这一突破性的技术成果迅速获得了市场的认可,为ETI带来了可观的收益。

问答坊 | AI 解惑

电子镇流器原理与制作

我找到的一点资料。希望各位能够喜欢!…

查看全部问答>

casio dt930 扫描问题

对于扫描方式:               0:激光/按键               1:激光               2: ...…

查看全部问答>

使用OWNER-DRAN方法用图片制做界面.

最近用SDK写界面,用图片将窗口全Bitblt一边,却闪得历害,以下是我的代码,请高手指点. 1.画背景 case WM_ERASEBKGND:         BeginPaint(hDlg,&ps);                &n ...…

查看全部问答>

哪位大哥帮帮忙!关于信号量的问题!如果一个信号量仅声明不初始化直接Take,会造成调用这个信号量的任务出现不可预期的长期PEND吗?

补充:多任务系统,调用该信号量的任务优先级最低(这个信号量只在一个地方调用,实际上没用),另外该信号量的等待时间是WAIT_FOREVER!哪位好心人的大哥大姐叔叔阿姨大爷大娘帮帮忙啊!小弟这里趴求了!…

查看全部问答>

关于ucf的问题

我现在用xilinx的fpga,有几个pin必须要是某个固定的值,但是我的设计里面是没有相关信号的。如果不去改变code,在ucf里面能否设置这几个pin为我期望的值?…

查看全部问答>

有关2812SCI寄存器的配置

我使用BIOS的周期函数执行SCI通讯的主函数,发现无法实现正常的通讯功能,检查了一下程序,我认为问题可能出在寄存器配置上,请各位帮我看一下问题在哪? 我的SCI初始化如下: void InitSciPort(void) { /******/         ...…

查看全部问答>

win 7 64位旗舰版不识别cc2430仿真器,无法驱动,有没有64位的驱动?

RT,在网上都找不到解决方案,要么就是说已经解决了又不说怎么解决的,受不了了,被个驱动拆腾得,有没有人告诉我一下是怎么解决的。已经解决了,下了一个IAR EW8051 V8.1,装驱动的时候就会有X64的选项,把那个上传一下,不过不知道这样有没有用, ...…

查看全部问答>

关于风火轮的官方指导文档中的取样时间

Capacitive Touch BoosterPack (430BOOST-SENSE1) for the LaunchPad User\'s Guide (Rev. B) slau337b 第15页 The User Experience application starts in sleep mode, sampling the proximity sensor approximately every 8.3 ms (VLO / 100 = ...…

查看全部问答>