电子说
作为一名电子工程师,在工业、汽车和嵌入式控制等领域的设计工作中,网络通信控制器的选择至关重要。今天就来详细介绍一款优秀的产品——Microchip的COM20020i Rev. D,一款5Mbps ARCNET(ANSI 878.1)控制器,它具备诸多出色特性,能为相关应用提供可靠的通信解决方案。
文件下载:COM20020I-DZD-TR.pdf
COM20020i Rev. D具有众多令人瞩目的特性。它的数据传输速率最高可达5 Mbps,能满足高速数据传输的需求。其可编程的重新配置时间,让网络适应变化的能力更强;具备28 - 引脚PLCC和48 - 引脚TQFP两种RoHS合规封装,可根据不同设计需求灵活选择;适用于工业、工厂、建筑自动化以及交通运输等应用场景。采用确定性的(ANSI 878.1)令牌传递ARCNET协议,能确保在实时应用中提供可预测的响应时间。此外,它对微控制器和媒体接口逻辑的需求极低,拥有灵活的接口,可与各种微控制器或微处理器配合使用,还能自动检测微控制器接口类型。内部集成2Kx8的双端口RAM,支持命令链进行数据包排队,可顺序访问内部RAM,软件可编程节点ID,有八个256字节页面,支持四种页面的收发以及暂存存储器,可读取下一个节点ID,具备内部时钟缩放器和时钟倍增器用于调整网络速度,工作温度范围为 - 40°C至 + 85°C,支持自重新配置协议,最多可支持255个节点,支持多种网络拓扑结构,采用CMOS工艺,单 + 5V电源供电,具备重复节点ID检测和强大的诊断功能,还有接收所有数据包模式以及灵活的媒体接口,包括传统混合接口和RS485差分驱动接口。
通信基于令牌传递协议,网络配置的建立和管理由COM20020iD的内部微代码序列器完成。处理器或智能外设只需将数据包及其目标ID加载到内部RAM缓冲区,并发出启用发送器的命令即可传输数据。当接收到令牌时,会先发送FREE BUFFER ENQUIRY消息验证接收节点是否准备好,若接收节点发送ACKnowledge消息,则发送数据包和16位CRC;若接收节点无法接受数据包,则发送Negative AcKnowledge消息,发送器传递令牌。接收节点成功接收数据包后会发送ACKnowledge消息,发送器设置相应状态位。中断掩码允许在选定状态位为真时生成中断。
COM20020iD支持156.25 Kbps至5 Mbps的数据速率。要实现更高的数据速率,可通过内部时钟倍增器将时钟频率加倍;对于较慢的数据速率,内部时钟分频器会降低时钟频率,所有超时值也会相应缩放。若要实现5 Mbps的网络,需输入40 MHz的外部时钟,但由于40 MHz接近FM无线电频段,存在噪声问题,因此可通过Setup2寄存器中的CKUP[1,0]位从20 MHz晶体生成更高频率的时钟。改变CKUP1和CKUP0位后,需等待一段时间并向命令寄存器写入命令数据 '18H' 以重新启动ARCNET核心操作。当数据速率超过5 Mbps时,SETUP2寄存器中的EF位必须设置。
COM20020iD能适应网络变化,当新节点激活或停用、新设备开启、未收到传输邀请420ms或发生软件复位时,会发送RECONFIGURE BURST进行网络重新配置,该突发信号会终止网络上的所有活动。当检测到空闲线路超过41μS(令牌丢失时),每个设备会启动内部超时,超时后开始发送传输邀请,最终每个设备会保存一个NID值,实现节点间的直接控制传递。网络重新配置时间通常在12至30.5ms范围内。
广播功能允许特定节点同时向网络上的所有节点传输数据包,ID零用于此功能,网络上的任何节点都不能分配ID零。发送广播消息时,只需将数据包加载到RAM缓冲区并将DID设置为零。每个节点可通过设置“Enable Receive to Page fnn”命令的最高有效位为逻辑“0”来忽略广播消息。
该设备有三个与操作相关的超时,其值由配置寄存器的第3和4位以及Setup 1寄存器的第5位控制。响应时间决定了任意两个节点之间允许的最大传播延迟,应大于网络上最远两个节点之间的往返传播延迟加上最大周转时间;空闲时间与网络重新配置相关;重新配置时间内若节点未收到令牌,将启动网络重新配置。所有连接到同一网络的COM20020iD必须具有相同的响应时间、空闲时间和重新配置时间。
ARCNET线路协议是等时的,每个字节前有起始间隔,后有停止间隔,数据字节之间的时间间隔恒定。在5 Mbps的网络上,每个字节需要11个200ns的时钟间隔,即每2.2μS传输一个字节,可精确确定消息传输时间。线路空闲时为逻辑“0”,逻辑“0”表示无线路活动,逻辑“1”表示持续100ns的负脉冲。传输开始时会有一个由6个单位间隔的标记(逻辑“1”)组成的ALERT BURST,然后发送8位数据字符,每个字符前有2个单位间隔的标记和1个单位间隔的空格。支持五种类型的传输,包括传输邀请、空闲缓冲区查询、数据包、确认消息和否定确认消息。
COM20020iD的微控制器接口由8位数据总线、地址总线和控制总线组成。它能自动检测并适应所使用的微控制器类型,默认采用80XX - 类似的信号和复用操作。在硬件复位后,通过软件执行特定操作来确定控制信号类型和总线类型,一旦确定,将保持该接口模式直到下一次硬件复位。对内部RAM和寄存器的访问由COM20020iD控制,内部RAM通过基于指针的方案访问,内部寄存器通过直接寻址访问。该设备提供无等待状态仲裁,指针可用于自动递增模式进行顺序缓冲区操作,也可用于随机访问。数据通过数据寄存器进行读写,读取时数据会从内存预取到数据寄存器,写入时数据先存储在数据寄存器再写入内存。此外,为支持高速CPU总线时序,对地址解码和主机接口模式块进行了修改,添加了RBUSTMG位来禁用/启用高速CPU读取功能。
COM20020iD提供三种与传输媒体接口的方式。传统混合接口适用于与其他混合接口节点组成的网络,仅适用于2.5 Mbps的节点,通过变压器耦合提供隔离和高共模抑制,使用特定电路进行数据传输和接收;背板配置适用于对成本敏感的短距离应用,如背板和仪器,该模式节省组件、成本和功率,但不隔离节点与媒体,也不保护其免受共模噪声影响,COM20020iD提供可编程输出驱动器,默认采用开漏输出;差分驱动配置是背板模式的特殊情况,适用于汽车区域网络等对成本敏感且不需要与现有ARCNET节点直接兼容和隔离的应用,通过RS485驱动器/接收器进行数据传输和接收。此外,COM20020iD的TXEN输出极性可编程,以适应具有高电平有效ENABLE引脚的收发器。
COM20020iD内部的微序列器执行ARCNET协议所需的所有控制操作,由时钟发生器、544 x 8 ROM、程序计数器、两个指令寄存器、指令解码器、无操作发生器、跳转逻辑和重新配置逻辑组成。从时钟倍增器的输出时钟派生10 MHz和5 MHz的时钟,分别用于程序计数器操作和指令执行。微程序存储在ROM中,指令被提取并放入指令寄存器,解码后执行。遇到无操作指令时,微序列器进入定时循环;遇到跳转指令时,程序计数器加载跳转地址。内部重新配置定时器超时会中断微序列器,清除程序计数器并设置诊断状态寄存器的MYRECON位。
COM20020iD包含14个内部寄存器,包括中断掩码寄存器、数据寄存器、临时ID寄存器、节点ID寄存器、下一个ID寄存器、状态寄存器、诊断状态寄存器、命令寄存器、地址指针寄存器、配置寄存器、子地址寄存器、Setup 1寄存器和Setup 2寄存器。这些寄存器在设备的操作中发挥着不同的作用,如中断掩码寄存器指定哪些状态位可生成中断,数据寄存器用于数据的读写,节点ID寄存器存储节点的唯一标识等。
内部集成的2K x 8 RAM节省了大量空间和成本,减少了外部RAM、外部锁存器以及复用地址/数据总线和控制功能的需求,降低了系统设计的复杂度和成本,提高了可靠性。内部RAM通过基于指针的方案进行访问,数据通过8位数据寄存器与微控制器进行通信。访问速度快,可通过设置Setup1寄存器的第0位来减慢仲裁时钟。
微控制器通过软件访问各种寄存器与COM20020iD进行交互。访问数据缓冲区的软件流程基于顺序访问方案,包括禁用中断、写入指针寄存器、启用中断、读写数据寄存器等步骤。控制配置、节点ID、临时ID和下一个ID寄存器的软件流程主要用于初始化序列和维护网络地图。在选择RAM页面大小时,可根据需要将2K x 8的RAM分为四个512字节的页面,通过“Enable Transmit (Receive) from (to) Page fnn”命令指定使用的页面,还可通过设置偏移位“f”来实现更精细的缓冲区分配。在发送和接收序列中,需按照特定的格式将数据包写入或读取RAM缓冲区,并根据状态位的变化进行相应的操作。
命令链操作允许连续的传输和接收操作在无需主机微控制器干预的情况下进行,通过双二级FIFO对命令和状态位进行流水线处理。默认情况下,设备处于非链模式,要使用命令链操作,需将配置寄存器的第6位置为逻辑“1”。在命令链模式下,状态寄存器的表现有所不同,支持最多两个未完成的传输和接收操作,中断服务程序的延迟不影响性能,中断掩码位作用于TTA(发送器可用的上升沿)和TRI(接收器禁止的上升沿)。发送命令链和接收命令链的操作流程类似,在完成一次传输或接收后,会更新状态寄存器并生成中断,通过特定命令清除中断和状态位。
COM20020iD包含特殊的复位电路,支持软件和硬件复位。软件复位通过将配置寄存器的第7位置为逻辑“1”实现,不影响微控制器接口模式和部分寄存器的内容;硬件复位通过在nRESET输入上施加低信号实现,最小复位脉冲宽度为5TXTL。复位后,发送器部分禁用,内部寄存器进入特定状态。在写入非零值到节点ID寄存器之前,应先写入Setup1寄存器,写入节点ID寄存器后,设备会向RAM缓冲区执行两次写操作。
在初始化过程中,通过对COM20020iD的地址空间中的奇数地址进行读写操作来确定合适的总线接口。在写入非零值到节点ID寄存器之前,应先写入Setup1寄存器,直到设置节点ID寄存器后,核心才会唤醒,但节点要加入网络还需设置配置寄存器的TX Enable位。在设置TX Enable位之前,可通过观察诊断状态寄存器的接收活动和令牌可见位来验证接收器和网络的健康状况,同时确定节点ID的唯一性。可使用临时ID寄存器构建网络地图,使用下一个ID寄存器确定下一个逻辑节点。
COM20020iD通过内部诊断状态寄存器提供了更好的网络管理功能。My Reconfiguration(MYRECON)位为高时表示该节点的令牌接收定时器超时,导致网络重新配置,可通过检查该位来判断节点是否存在问题;Duplicate ID(DUPID)位用于在节点加入网络之前确保节点ID的唯一性;Receive Activity(RCVACT)位和Token Seen(TOKEN)位可帮助用户排查网络或节点问题,不同组合的这些位和配置寄存器的TXEN位表示不同的情况;Excessive NAK(EXCNAK)位用于限制发送器向无可用缓冲区的节点发送空闲缓冲区查询的次数,可通过设置Setup1寄存器的FOUR - NAKS位来确定超时值;New Next ID位允许软件检测节点的添加或移除;Tentative ID位可用于构建网络地图。
COM20020iD的振荡器电路与外部并联谐振晶体或TTL时钟配合使用。使用外部晶体时,需要两个电容器,晶体精度要求为0.020%或更高,振荡频率范围为10 MHz至20 MHz。当内部时钟倍增器开启时,晶体精度要求为0.010%或更高,振荡频率必须为20 MHz。也可使用外部TTL时钟,此时需在XTAL1信号上添加390Ω上拉电阻,XTAL2保持未连接。
COM20020iD的最大额定值包括工作温度范围、存储温度范围、引脚温度、引脚电压等,超过这些额定值可能会导致设备永久性损坏。在使用实验室或系统电源供电时,要注意避免超过绝对最大额定值,可使用钳位电路来防止电压尖峰或瞬变。
详细说明了不同输入输出引脚的电压范围、输出电压、电源电流、输入上拉电流和输入泄漏电流等DC电气特性,这些参数对于正确设计和使用COM20020iD至关重要。
提供了多种不同总线模式和控制信号下的读写周期时序图,包括地址设置时间、地址保持时间、片选设置时间、片选保持时间、时钟信号宽度等参数,这些参数对于确保微控制器与COM20020iD之间的正确通信至关重要。在设计过程中,要根据具体的应用场景和微控制器的特性,合理设置这些时序参数,以保证系统的稳定性和可靠性。同时,要注意不同数据速率和时钟设置对时序参数的影响,以及一些特殊操作(如地址指针寄存器的读写)的时序要求。
介绍了COM20020iD的两种封装形式,即48 - 引脚TQFP和28 - 引脚PLCC,并提供了相应的封装外形图和尺寸信息。在进行PCB设计时,要根据封装尺寸合理安排元件布局,确保引脚连接正确,同时要考虑散热和机械稳定性等因素。
COM20020i Rev. D是一款功能强大、性能卓越的ARCNET控制器,它在协议支持、系统设计、功能特性等方面都表现出色。其丰富的功能和灵活的配置选项使其适用于各种工业、汽车和嵌入式控制等领域的网络通信应用。在实际设计中,我们需要深入理解其工作原理和各项参数,根据具体的应用需求进行合理的配置和优化,以充分发挥其优势,实现高效、稳定的网络通信。同时,要注意遵循其操作要求和注意事项,确保设备的正常运行和系统的可靠性。大家在实际应用中遇到过哪些关于网络通信控制器的问题呢?欢迎一起讨论交流。
全部0条评论
快来发表一下你的评论吧 !