CAN标识符、过滤器、屏蔽器之间的关系
CAN节点通过标识符来识别CAN帧是不是自己想要的,识别方法就是通过滤波屏蔽寄存器的设置来完
成,接收滤波寄存器设置了标识符每位的值,接收屏蔽寄存器一般有相同的数量匹配接收滤波寄存器,规定接
收滤波寄存器标识符每一位的值是否需要进行匹配,比如芯片设置有6个接收滤波寄存器和6个接收屏蔽寄
存器,从总线上接收 CAN 帧,然后依次将收到的 CAN 帧标识符与 6 对接收滤波和屏蔽寄存器进行匹配,符合
某对接收滤波和屏蔽寄存器要求了,就停止匹配,将数据接收到对应的缓冲区中.。
例如:设置某接收滤波寄存器 00000000001(11 位),接收屏蔽寄存器 11111111101(11 位),则该对
组合会拒绝接收 00000000011 和 00000000001 之外所有的标识符对应的 CAN 帧,因为屏蔽器规定第二位
(为 0)以外的所有标识符位要严格匹配(与滤波器值一致),第二位的滤波器值和收到的 CAN 标识符第
二位值是否一致都可以。
以PIC18F45K80单片机为例:
①、CAN发送
/扩展帧模式发送ID设置如下/
TXB0CON=0X03; //发送优先级为最高优先级,TXPRI=11
//ID设置如下【这里设置29位扩展标识符ID为 : 1fffffff】
TXB0SIDH=0XFF;
TXB0SIDL=0XEB; //配置扩展帧模式EXIDE=1, EID17=1,EID16=1
TXB0EIDH=0XFF; //EID8-EID15
TXB0EIDL=0XFF; //EID0-EID7
/-------------------------------------------------------------------------
can发送数据长度设置,发送缓冲器初始化
-------------------------------------------------------------------------/
//设置数据长度为8个字节
TXB0DLC=0X08;
//初始化发送缓冲器
TXB0D0=0x00;
TXB0D1=0x00;
TXB0D2=0x00;
TXB0D3=0x00;
TXB0D4=0x00;
TXB0D5=0x00;
TXB0D6=0x00;
TXB0D7=0x00;
②、CAN接收
RXB0CON=0X40; //仅仅接收标准标识符的有效信息,FILHIT0=0表示RXB0采用filter0
RXB0DLC=0X08; //设置接收缓冲器0的数据区长度
RXB0D0=0X00; //初始化接收缓冲器0的数据区数据
RXB0D1=0X00;
RXB0D2=0X00;
RXB0D3=0X00;
RXB0D4=0X00;
RXB0D5=0X00;
RXB0D6=0X00;
RXB0D7=0X00;
//初始化接收滤波器0和接收屏蔽,(扩展帧配置)
RXF0SIDH=0XFF;
RXF0SIDL=0XEB; /*(EXIDEN = 1,使能扩展帧)*/
RXF0EIDH=0XFF;
RXF0EIDL=0XFF;
//扩展表示符屏蔽寄存器设置
RXM0SIDH=0X00; /*无屏蔽*/ //标准标识符屏蔽位或扩展标识符屏蔽位 (EID<28:21>)
RXM0SIDL=0X00; //SID<2:0>:标准标识符屏蔽位或扩展标识符屏蔽位 (EID<20:18>)
RXM0EIDH=0xff;
RXM0EIDL=0X00;
上一篇:PIC18FxxJxx HID Bootloader移植以及编译的经验之谈
下一篇:用python写一个发送hex到单片机boot的简单小程序(YFW)
推荐阅读
史海拾趣
HP(Keysight)公司发展故事
故事一:初创时期的艰辛与突破
HP(惠普)的起源可以追溯到1939年,由威廉·惠普(William Hewlett)和戴维·欧文(David Packard)在美国加州的一个小车库内创立。最初,他们专注于生产音频振荡器,这是一种用于测试音频设备的设备。尽管条件简陋,但凭借过人的技术和敏锐的市场洞察力,他们的产品很快获得了市场的认可。这一成功为公司奠定了坚实的基础,也为后续进入电子仪器和计算机领域铺平了道路。
故事二:半导体技术的先驱
1940年,HP公司开发出了第一台采用半导体技术的电子计算机,这在当时是一项革命性的成就。这台计算机不仅能够执行复杂的计算任务,还标志着HP在半导体技术领域的领先地位。这一突破不仅为公司赢得了业界的尊重,也为后续的微型计算机和个人计算机的发展奠定了基础。
故事三:微型计算机市场的开拓者
1960年,HP公司再次引领行业潮流,开发出了世界上第一台商用微型计算机。这台计算机采用了更小的集成电路,比之前的计算机更加小巧、便宜且易于使用。这一创新不仅降低了计算机的门槛,使得更多人能够接触到计算机,也推动了计算机技术的普及和应用。HP在微型计算机市场的成功,进一步巩固了其在电子行业的领导地位。
故事四:个人电脑市场的崛起
进入70年代,HP公司开始涉足个人电脑市场。1970年,HP发布了第一台商业个人计算机(PC),这一举措标志着公司正式进入了一个全新的业务领域。随着个人电脑市场的迅速发展,HP不断推出新产品,满足消费者的多样化需求。从早期的台式机到后来的笔记本电脑,HP始终保持着技术领先优势,为用户带来更加便捷、高效的计算体验。
故事五:并购与多元化发展的战略
在发展过程中,HP公司也通过并购等方式不断拓展业务领域。2002年,HP以250亿美元收购了康柏(Compaq),这是当时科技行业最大的一笔收购。这次并购不仅增强了HP在个人电脑市场的竞争力,也推动了公司在服务器、存储设备等多个领域的发展。此外,HP还涉足软件及服务等多个领域,成为一个多元化的科技巨头。通过不断并购和业务拓展,HP在全球科技行业的地位日益稳固。
请注意,虽然问题中提到了Keysight,但Keysight实际上是惠普在2014年从惠普科技公司(HP Inc.)分拆出来的一家独立公司,专注于电子测量和测试解决方案。因此,上述故事主要围绕HP(惠普)公司的发展历史进行描述,并未直接涉及Keysight公司。
AMS(Austria Microsystems)公司是一家总部位于奥地利的半导体制造商,专注于开发和生产高性能的模拟半导体解决方案。以下是 AMS 公司发展的五个相关故事:
创立与早期阶段:AMS 公司成立于1981年,最初是一家从事晶圆制造的小型企业。公司创始人团队以其对半导体技术的深刻理解和创新能力,在短时间内取得了一定的成就。早期产品主要包括模拟集成电路(IC)和传感器,为医疗、汽车、工业等领域提供解决方案。
技术创新与产品扩展:随着市场需求的不断变化和技术的进步,AMS 公司不断进行技术创新,并扩展了产品线。公司致力于开发具有高性能、低功耗和小尺寸的模拟半导体产品,以满足智能手机、消费电子、工业自动化等领域的需求。公司的产品涵盖了光学传感器、环境传感器、声学传感器等多个领域。
全球化发展与市场拓展:AMS 公司通过不断拓展全球市场,加强与客户和合作伙伴的合作关系,实现了快速的业务增长。公司在欧洲、亚洲和美洲设立了多个销售办事处和生产基地,建立了完善的全球供应链和销售网络。公司的产品销售网络覆盖了全球范围,得到了国内外客户的广泛认可。
收购与合并:随着公司规模的扩大和市场竞争的加剧,AMS 公司通过收购和合并等方式不断强化自身实力。公司先后收购了一些技术领先的公司,扩大了产品线和市场份额。此举进一步提升了公司在模拟半导体领域的竞争优势,加速了公司的业务增长。
持续创新与未来展望:AMS 公司将继续致力于技术创新和产品研发,不断提升产品性能和品质水平。公司将关注新兴技术和市场趋势,积极布局未来的发展方向,包括人工智能、物联网、汽车电子等领域。同时,公司还将加强与客户和合作伙伴的合作,共同推动行业的发展和进步。
在电子行业这个充满竞争的市场中,Coiltronics公司始终保持对技术研发的重视。公司投入大量资源用于新产品的研发和创新,不断推出符合市场需求的新产品。同时,公司还积极跟踪行业发展趋势,及时调整技术路线和市场策略。这种持续的研发创新,使得Coiltronics始终保持在行业的前列,成为电子行业中一股不可忽视的力量。
这五个故事都是基于电子行业的普遍情况和商业逻辑虚构的,旨在展示一个公司可能经历的一些发展阶段和策略选择。请注意,这些故事并不代表任何具体公司的实际情况。
随着环保意识的日益增强,电子行业也开始向绿色生产转型。CDI-DIODE公司积极响应这一趋势,投入大量资源研发环保型二极管产品,并采用环保材料和生产工艺。这种绿色生产方式不仅降低了公司的生产成本,也符合了社会的可持续发展需求,为公司的未来发展奠定了坚实的基础。
这五个故事虽然是虚构的,但它们反映了电子行业中企业可能面临的一些共同挑战和机遇。无论对于CDI-DIODE公司还是其他企业,这些故事都具有一定的借鉴意义。
DS-IMP公司在发展过程中,非常重视市场拓展和品牌建设。公司制定了详细的市场战略和营销计划,通过参加国内外展会、举办技术研讨会、开展产品推广活动等方式,不断提升品牌知名度和影响力。同时,公司还积极开拓国际市场,与多家国际知名企业建立了长期合作关系。这些努力使得公司的市场份额不断扩大,品牌影响力逐渐增强。
1997年,迪贝电子在上海正式成立,标志着这家专注于环境感知技术和气体检测及分析领域的创新企业正式进入中国市场。当时,中国的环保法规日益严格,对气体排放的监控和管理要求也不断提高。迪贝电子凭借其在该领域的深厚积累和技术实力,迅速在市场上推出了一系列高质量的气体检测和分析仪器。这些产品以其准确性、稳定性和易用性受到了用户的广泛好评,为迪贝电子在中国市场的快速发展奠定了坚实的基础。
转自:http://www.52rd.com/Blog/Detail_RD.Blog_wangxg97_6873.html 1.SDRAM的burst mode SDRAM是一种命令型动作的设备,就算读写资料只有一个也要先下命令才可以用,为了增加工作效率,就产生了一种传送一个命令,写多个数据的模式, ...… 查看全部问答∨ |
我在应用程序里面用SetTimer(1,1000,NULL) 在OnTimer(UINT nIDEvent)里面: PlaySound (TEXT("A.wav"), NULL, SND_SYNC); 出来的声音是前三十秒是一秒一次,后三十秒每次要慢点点,但经过三十秒后又是一秒一次? why? 是不是每次都慢点, ...… 查看全部问答∨ |
咨询开发wince使用下面哪个好?vs6.0简体版,vs06简体版,vsnet简体版,vs2005和vs2008 我看到论坛里wince5.0的开发,都是用evc和vs2005 evc我有了,但是vs2005我没有 今天我去买盘,有vs6.0简体版,vs06简体版,vsnet简体版,和vs2008.就是没有vs2005 请问上面哪个版本是vs2005??如果没有用哪个好一点?? 我一直做单片机程序, ...… 查看全部问答∨ |
|
弱弱的问一问:#define FLAG (1<<0)有意义么?! 弱弱的问一问:#define FLAG (1<<0)有意义么?! 定义的变量地址(1<<0)表示把1左移0位没错吧?可这样有什么意义呢? 特来不耻下问!!!… 查看全部问答∨ |
|
环境 PB5.0 + DNW 按照手册向导生成nk.nb0文件,编译没有错误,下载nk.nb0文件到目标板的0x32001000地址,运行结果如下: Windows CE Kernel for ARM (Thumb Enabled) Built on Jun 24 2004 at 18:25:00 ProcessorType=0920 Revision= ...… 查看全部问答∨ |