新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 自由支配!不要让MCU、内核或编程语言干扰你的设计

自由支配!不要让MCU、内核或编程语言干扰你的设计

作者:Jon D. Pearson 赛普拉斯半导体公司时间:2010-03-02来源:电子产品世界收藏

  正如前面所述,这是一个直接和相对简单的应用,非常简单以至于不需要考虑系统,而是很自然地跳到实施(我相信大多数读者甚至可以说出最喜欢的微控制器供应商的型号)。可以是用于次级市场的高端PC游戏图形系统的墙恒温器或温度管理装置。用于墙恒温器的微控制器的具体实施基本不需用于图形系统。重点是,无论设计显得多么简单,都有很好的理由先设计系统,然后实现它。将其尽量设计成适合通常应用。

本文引用地址:http://www.eepw.com.cn/article/106457.htm

  开始时,需要考虑理想的系统设计,然后生成layers,在理想的系统和实际实施之间构建wrappers(有时是杂乱的)。“控制逻辑”部分作为框图的核心是有充分理由的-因为它是系统的。周围的每个部分都服务于“控制逻辑”部分,要根据需要提供“服务”。

  应自“温度传感器”部分开始。其理由是获得当前/瞬时温度,并以一致的格式提供出来。从“控制逻辑”的角度来看,其作用是“获取温度”,并以格式化的值(xxx.xx摄氏度)返回当前温度值。温度传感器部分的硬件wrappers将包括实施中任何需要用来将原温度传感输入“翻译”成预期格式的摄氏度。这可能意味着需要考虑获得新读数的最佳时间,如果温度读数中有太多的噪音(无论何种原因),应添加过滤算法,并且如果温度硬件出现故障,应采用决策逻辑。重点是,“温度传感器”部分的输出是什么,而且传递到“控制逻辑”应为理想的温度,所有的噪音,实际隐藏的细节都应很容易的由wrapper代替。

  如果设计需要从系统中三个不同的点测量三个温度值(对于计算机箱内的计算机很普遍)怎么办?处理这三个温度是控制逻辑问题(例如,何时多路输出也将受到控制)?如果是这样,从1个温度转换到3个温度首先意味着“温度传感器”部分要更新,以提供3个温度和为每个温度实施创建的wrappers(允许多种类型的输入),然后控制逻辑也因为多个输出而更新。这可能意味着三个不同的“GetTemperature_n”服务或需要更新服务以确定是识别哪个温度的参量。

  如果三个温度仅仅用于加权以得到一个“更真实”的系统温度,控制逻辑不需要改变,只需将含wrappers的温度传感块以统一格式输入这三个温度,然后通过一个wrappers来对这三个温度进行加权,生成控制逻辑所需的单一温度。这种方法易于包含来自不同的温度输入(例如,图形处理器的二极管结测量和连接到PCB的模拟热敏电阻),因为wrappers将系统逻辑与硬件隔离开。

  让我们以两个不同的实现例子验证这个论点:一个用于墙恒温器,另一个是显卡上的温度控制子系统。首先对于墙恒温器,如图2所示,假定使用基于8051的赛普拉斯PSoC3设备。“温度传感器”部分的硬件由连接到ADC(16位Δ-Σ转换器)的热敏电阻组成。“用户输入”部分的硬件由5个常开按键开关组成,一边连接到电路接地端,另一边连接到含内部上拉电阻的5输入数字端口。“热和冷命令”模块的硬件部分包括三个功率场效应管,由配置为开漏低输出的3输出端口驱动。最后,“显示输出”块的硬件实现是串行字符液晶显示器,能够根据需要显示字母数字字符串。

  对于第2个应用,即显示卡,将用户输入从离散开关变为I2C基于寄存器的从接口(由主CPU而不是人类直接控制),并将串行LCD显示变为SPI-从控制显示器(使用一系列的寄存器和指令,可能是安装在主计算机外壳前面板上的远程变频显示,未安装到显卡上)。温度输入和HVAC命令保持不变。图3显示了早期实施的变化,假定使用基于8051的赛普拉斯PSoC3设备。



评论


相关推荐

技术专区

关闭