EDN China > 技术文章 > 微处理器与DSP > CPU/GPU > 正文
? 2016博客大赛-不限主题,寻找电子导师,大奖升级??

避免MCU或编程语言干扰设计

2012年01月05日 ?? 收藏0

如果设计需要从系统中三个不同的点测量三个温度值(对于计算机箱内的计算机很普遍)怎么办?处理这三个温度是控制逻辑问题(例如,何时多路输出也将受到控制)?如果是这样,从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设备。

温控器的实现

用户输入的两种实现均可服务于“GetThermostatSetting”、“IsHeaterEnabled”、“IsCoolerEnabled”和“IsFanOn”。对于第一个墙恒温器应用,“用户输入”将数字端口包装到所列的服务中,当设备被调用时,提供端口的实时读数(一种可能的实施)。对于另一个应用,基于I2C从机的实现,相同的服务将来自I2C主机写入的寄存器的最新值返回到“控制逻辑”部分,也许经常返回也许仅在上电时返回。并且这些实现还有很多其它特点,包括用作切换键的墙上按钮开关而不是瞬间读数,甚至在“用户输入”部分的wrappers深层进行边沿触发异步处理。

综合上述的关键是:系统设计隐藏了硬件细节;硬件和实施细节被系统设计包装并隐藏。通过外端设计(即代码)的实施细节,可以保护这些应用实现时避免分裂,可以做到个性化的设计,权衡利弊,保证项目成功交付,并仍然能够提供可复用性和组设计。不要让卖方牵引注意力——先设计系统,然后加强保护系统设计实现细节不被抄袭。


上一页12下一页
?? ?? ??


打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮

1.扫描左侧二维码
2.点击右上角的分享按钮
3.选择分享给朋友
?? ??

温度传感器? PSoC? I2C?

相关文章

我来评论
美国的游客
美国的游客 ??? (您将以游客身份发表,请登录 | 注册)
?
有问题请反馈