商铺名称:厦门奇钜泰自动化有限公司
联系人:黄先生()
联系手机:
固定电话:
企业邮箱:1145187711@qq.com
联系地址:厦门市湖里区长乐路350号闽南古镇A部4119室
邮编:362006
联系我时,请说是在新型建材网上看到的,谢谢!
江西1756-L81E 1756-L81E---MA0185100供应
1756-L81E 1756-L81E
MA0185100
尽管许多嵌入式工程师充满了希望和梦想,但高可靠性的代码不是一蹴而就的。它是一个艰苦的过程,需要开发人员维护和管理系统的每个比特和字节。当一个应用程序被确认为“成功”的那一刻,通常会有一种如释重负的感觉,但仅仅因为软件在受控条件下的那一刻运行正常并不意味着明天或一年后还会运行正常。 从规范完善的开发周期到严格执行和系统检查,开发高可靠性嵌入式系统的技术有许多种。给大家介绍7个比较好操作且可以长久使用的技巧,它们对于确保系统更加可靠地运行并捕获异常行为大有帮助 技巧1——用已知值填充ROM 软件开发人员往往都是非常乐观的一群人,只要让他们的代码忠实地长时间地运行就可以了,仅此而已。微控制器跳出应用程序空间并在非预想的代码空间中执行这种情况似乎是相当少有的。然而,这种情况发生的机会并不比缓存溢出或错误指针失去引用少。它确实会发生!发生这种情况后的系统行为将是不确定的,因为默认情况下内存空间都是0xFF,或者由于内存区通常没有写过,其中的值可能只有上帝才知道。 不过有相当完备的linker或IDE技巧可以用来帮助识别这样的事件并从中恢复系统。技巧就是使用FILL命令对未用ROM填充已知的位模式。要填充未使用的内存,有很多不同的可能组合可以使用,但如果是想建立更加可靠的系统,最明显的选择是在这些位置放置ISR fault handler。如果系统出了某些差错,处理器开始执行程序空间以外的代码,就会触发ISR,并在决定校正行动之前提供储存处理器、寄存器和系统状态的机会。 技巧2——检查应用程序的CRC 对嵌入式工程师来说一个很大的好处是,我们的IDE和工具链可以自动产生应用程序或内存空间校验和(Checksum),从而根据这个校验和验证应用程序是否完好。有趣的是,在许多这些案例中,只有在将程序代码加载到设备时,才会用到校验和。 然而,如果CRC或校验和保持在内存中,那么验证应用程序在启动时(或甚至对长时间运行的系统定期验证)是否仍然完好是确保意外之事不会发生的极好途径。现在一个编程过的应用程序发生改变的概率是很小的,但考虑每年交付的数十亿个微控制器以及可能恶劣的工作环境,应用程序崩溃的机会并不是零。更有可能的是,系统中的一个缺陷可能导致某一扇区发生闪存写入或闪存擦除,从而破坏应用程序的完整性。 技巧3——在启动时执行RAM检查 为了建立一个更加可靠和扎实的系统,确保系统硬件正常工作非常重要。毕竟硬件会发生故障。(幸运的是软件永远不会发生故障,软件只会做代码要它做的事,不管是正确的还是错误的)。在启动时验证RAM的内部或外部没有问题,是确保硬件可以如预期般运作的一个好方法。 有许多不同的方法可用于执行RAM检查,但常用的方法是写入一个已知的模式,然后等上一小段时间再回读。结果应该是所读就是所写。真相是,在大多数情况下 RAM检查是通过的,这也是我们想要的结果。但也有极小的可能性检查不通过,这时就为系统标示出硬件问题提供了极好的机会。 技巧4——使用堆栈监视器 对许多的嵌入式开发者而言,堆栈似乎是一股相当神秘的力量。当奇怪的事情开始发生,工程师终于被难倒了,他们开始思考,也许堆栈中发生了什么事。结果是盲目地调整堆栈的大小和位置等等。但该错误往往是与堆栈无关的,但怎能如此确定?毕竟,有多少工程师真的实际执行过最坏情况下的堆栈大小分析? 堆栈大小是在编译时就静态分配好的,但堆栈是以动态的方式使用的。随着代码的执行,应用程序需要的变量、返回的地址和其它信息被不断存储在堆栈中。这种机制导致堆栈在其分配的内存中不断增长。然而,这种增长有时会超出编译时确定的容量极限,导致堆栈破坏相邻内存区域的数据。 绝对确保堆栈正常工作的一种方法是实现堆栈监视器,将它作为系统“保健”代码的一部分(有多少工程师会这样做?)。堆栈监视器会在堆栈和“其它”内存区域之间创建一个缓冲区域,并填充已知的位模式。然后监视器会不断的监视图案是否有任何变化。如果该位模式发生了改变,那就意味着堆栈增长得太大了,即将要把系统推向黑暗地狱!此时监视器可以记录事件的发生、系统状态以及任何其它有用的数据,供日后用于问题的诊断。 大多数实时操作系统(RTOS)或实现了内存保护单元(MPU)的微控制器系统中都提供有堆栈监视器。可怕的是,这些功能默认都是关闭状态,或者经常被开发人员有意关闭。在网络上快速搜寻一下可以发现,很多人建议关闭实时操作系统中的堆栈监视器以节省56字节的闪存空间。等等,这可是得不偿失的做法! 技巧5 - 使用MPU 在过去,是很难在一个小而廉价的微控制器中找到内存保护单元(MPU)的,但这种情况已经开始改变。现在从高端到低端的微控制器都已经有MPU,而这些 MPU为嵌入式软件开发人员提供了一个可以大幅提高其固件(firmware)鲁棒性(robustness)的机会。 MPU 已逐渐与操作系统耦合,以便建立内存空间,其中的处理都分开,或任务可执行其代码,而不用担心被stomped on。倘若真有事情发生,不受控制的处理会被取消,也会执行其他的保护措施。请留意带有这种组件的微控制器,如果有,请多加利用它的这种特性。 技巧6 - 建立一个强大的看门狗系统 你经常会发现的一种总是最受喜爱的看门狗(watchdog)实现是,在看门狗被启用之处(这是一个很好的开始),但也是可以用周期性定时器将该看门狗清零之处;定时器的启用是完全与程序中出现的任何情况隔离的。使用看门狗的目的是协助确保如果出现错误,看门狗不会被清零,即当工作暂停,系统会被迫去执行硬件重设定(hardware reset),以便恢复。使用与系统活动独立的定时器可以让看门狗保持清零,即使系统已失效。 对应用任务如何整合到看门狗系统中,嵌入式开发人员需要仔细考虑和设计。例如,有种技术可能可以让每个在一定时期内运行的任务标示它们可以成功地完成其任 务。在此事件中,看门狗不被清零,强制被复位。还有一些比较先进的技术,像是使用外部看门狗处理器,它可用来监视主处理器如何表现,反之亦然。 对一个可靠的系统而言,建立一个强大的看门狗系统是很重要的。由于有太多的技术,难以在这几个段落中完全涵盖,但针对此一议题,笔者未来还会发表相关的文章。 技巧7 - 避免易失存储器分配 不习惯在资源有限环境下工作的工程师,可能会试图使用其编程语言的特性,这种语言让他们可以使用易失存储器分配。毕竟,这是一种常在计算器系统中使用的技术,在计算器系统中,只有在有必要时,内存才会被分配。例如,以C开发时,工程师可能倾向于使用malloc来分配在堆(heap)上的空间。有一个操 作会执行,一旦完成,可以使用free将被分配的内存返回,以便堆的使用。 在资源受限的系统,这可 能是一场灾难!使用易失存储器分配的其中一个问题是,错误或不当的技术可能会导致内存泄漏或内存碎片。如果出现这些问题时,大多数的嵌入式系统并没有 资源或知识来监视堆或妥善地处理它。而当它们发生时,如果应用程序提出对空间的要求,但却没有所请求的空间可以使用,会发生什么事呢? 使用易失存储器分配所产生的问题是很复杂的,要妥善处理这些问题,可以说是一个噩梦!一种替代的方法是,直接以静态的方式,简化内存的分配。例如,只要在 程序中简单地建立一个大小为256字节长的缓冲区,而不是经由malloc请求这样大小的内存缓冲区。此一分配的内存可在整个应用程序的生命周期期 间保持,且不会有堆或内存碎片问题方面的顾虑。 结论 这些都只是一些可以让开发人员开始建立更可靠嵌入式系统的方法。另外还有很多其他技术,例如利用良好的编码标准、位翻转的监测、执行数组和指针边界检查,及使用断言等。所有这些技术都是让设计者可以开发出可靠性更高嵌入式系统的秘诀。
A06B-6130-H003 A06B-6240-H305 A860-2020-T301
20G1ANF061JA0NNNNN PowerFlex 755 AC Packaged Drive A06B-6140-H006 A06B-6200-H037 A06B-6110-H037
513-CCB-A2J-1L-6P-42 NEMA Size 2 COMB Starter Circuit Breaker@泉州市科道电子科技有限公司提供优质产品与服务,为您节省询价时间和不必要的浪费,欢迎来电咨询,竭诚为您服务!!!
IC697MDL350 120 Vac Output, 0.5 Amp (32 Points) 6ES7322-5GH00-0AB0 开出模块(16点,24VDC,独立接点,故障保护)
21G14PC770JN2NNNNN-ND-P20 PowerFlex Air Cooled 755 Packaged Drive
IC697VAL232 Replacement is Embedded VME-3122A-410000. Contact GE IP Embedded for details. IC694MDL660 RX3i 24VDC Input Module 32 point. Module is supported by serial bus andis not limited to the universal base or expansion base. The module requires a terminal block (IC694TBB032 box style or IC694TBS032 spring clamp style terminal block). Terminal
80022-210-34-R AC L.R, 3300V/50,4160V/60, HD{现货+质保+短货期+原装+全新+无忧服务}如有询价请随时联系我
20LC1K2ACENNANA0EA PowerFlex 700L AC Drive 20L IC693CPU364
507-BFBD-1-9-38-TB12 NEMA Size 1 Rvsg Combination Ckt-bkr
150-F780NBE SMC Flex Smart Motor Controller IC693MDL634 24 Vdc Input, Negative/Positive Logic (8 Points)
23B-BYD010G-1 PowerFlex 40, 480 Volt, 10 Amp Drive
20G1AJC650AN0NNNNN PowerFlex 755 AC Packaged Drive HPK-B2010C-SA42AA HPK-Series 460V AC Rotary Servo Motor
1608-99-00860 DySC Spare 400A 220V-240V Module
A06B-6150-H060 A20B-2902-0211 A06B-6096-H103 20F14NF012JN0NNNNN PowerFlex 753 AC Packaged Drive
20BD180A0AYNANC0 PowerFlex 700 AC Drive 20B
A290-0561-V503 A16B-1000-0010 A20B-2100-0021 IC695ALG312CA Conformal Coated. Isolated Thermocouple Input module provides twelve isolated differential thermocouple input channels. Each channel can be individually configured for inputs from: Thermocouple types: J, K, T, E, R, S, B, N, or C and Voltage: +/-150{现货+质保+短货期+原装+全新+无忧服务}如有询价请随时联系我
江西1756-L81E 1756-L81E---MA0185100供应
A03B-0819-C155
A20B-2002-0480 A03B-0815-C004
A20B-2001-0820
A66L-2050-0010#A 3HAB6182-1 DSQC 335
A06B-6079-H208@泉州市科道电子科技有限公司提供优质产品与服务,为您节省询价时间和不必要的浪费,欢迎来电咨询,竭诚为您服务!!!
A06B-6127-H105 A03B-0807-C167
A20B-8101-0100
3HAB8101-10 DSQC 358C 3HAC12928-1 DSQC 604
3HAC16035-1 DSQC 563
A860-2001-T301 IC697VDD100{现货+质保+短货期+原装+全新+无忧服务}如有询价请随时联系我
A860-2000-T321
A860-0333-T701 1756-IF4FXOF2F 模拟量输入输出模块
A06B-6079-H209
A06B-6290-H106 A06B-6151-H045#H580
A20B-2002-0892
IC697VSC096 140NRP95400 RIO光纤中继器
《销售态度》:质量保证、诚信服务、及时到位! 《销售宗旨》:为客户创造价值是我们永远追求的目标! 《服务说明》:现货配送至全国各地! 《产品质量》:原装正品,全新原装! 《产品优势》:专业销售 薄利多销 信誉好,口碑好,价格低,货期短,大量现货,服务周到! →诚信经营← →质量可靠← →进口原装← →大量库存← →即时通讯← →快速发货← 我们只提供优质的产品和服务。
江西1756-L81E 1756-L81E---MA0185100供应
Rexroth 力士乐 DKC06.3-200-7-FW@泉州市科道电子科技有限公司提供优质产品与服务,为您节省询价时间和不必要的浪费,欢迎来电咨询,竭诚为您服务!!!
ABB Asea Brown Boveri 3HAB5761-1 1FK6083-6AZ21-9ZZ9-Z S02 1747-SDN
Schneider 施耐德 LA1-LB015{现货+质保+短货期+原装+全新+无忧服务}如有询价请随时联系我
ABB Asea Brown Boveri 3HNA017440-001 FANUC 发那科 A20B-8100-0720
Rexroth 力士乐 DDS02.1-W100-D
IAI 艾卫艾 RC-S5-M-150-S 1SAP245200R0001
Rexroth 力士乐 MDD071B-N-030-N2S-095GB0
SIEMENS 西门子 6ES7315-2EH13-0AB0 XYCOM XVME-653
A02B-0323-C205
SMC CDQ2A12-10DZ FANUC 发那科 A16B-1212-0300
XYCOM XVME-290
MOTOROLA 摩托罗拉 VME MVME 162-020A 3HAC0860-1 OPTIMOL OPTIGEAR BM 100 LUBRICATING OIL
6RA8078-6DV62-0AA0{现货+质保+短货期+原装+全新+无忧服务}如有询价请随时联系我
SIEMENS 西门子 6ES7132-6BF00-0BA0 FANUC 发那科 A20B-8200-0845
SIEMENS 西门子 6ES7272-0AA30-0YA0
HA-FF33C-S5 3HAC12934-1
GE General Electric FCN36TE015R2@泉州市科道电子科技有限公司提供优质产品与服务,为您节省询价时间和不必要的浪费,欢迎来电咨询,竭诚为您服务!!!
YASKAWA 安川 SGDE-02BP LS 产电 GSL-TR2A
ABB Asea Brown Boveri 3HAC024518-003
LS 产电 GM6-PAFC FANUC 发那科 A06B-6240-H209
ALLEN BRADLEY 罗克韦尔 1783-NATR
RS OEMAX NX70-SCU FANUC 发那科 A06B-6134-H302#A
江西1756-L81E 1756-L81E---MA0185100供应
2840A21G01/3A99161G01 10QAO17{现货+质保+短货期+原装+全新+无忧服务}如有询价请随时联系我
20G11LD960AN0NNNNN PowerFlex 755 AC Packaged Drive 81007-150-61-R 9130 UPS RETROFIT KIT
MPAR-A3600E-M4A MP-Series Electric Cylinder
3HAC17484-6 A06B-6096-H206 A06B-6114-H105 A20B-3300-0154
A06B-6110-H030 A06B-6114-H106 A20B-2000-0411
IC800VMMCONP001 VersaMotion motor power connector (100 W to 750 W models) 3BHE021887R0101@泉州市科道电子科技有限公司提供优质产品与服务,为您节省询价时间和不必要的浪费,欢迎来电咨询,竭诚为您服务!!!
A06B-6134-H302#A A06B-6110-H011 A06B-6114-H207
MPAI-B5300EM32A MP Series Heavy Duty Electric Cylinder 6ES7221-3BD30-0XB0
A06B-6079-H102 A06B-6240-H203 A860-0392-T011
A20B-0008-0480 A20B-2100-0541 A03B-0801-C141 9701-VWSB000ADEM FT View Station SE unlimited DE MED S/W