硬件设计与软件设计相互制约、相互转化。单片机产品的差距往往由硬件设计水平决定。任何没有可靠硬件支持的软件设计都是空中楼阁。本文讨论了单片机硬件设计与软件设计的相互作用。
1硬件设计
硬件设计是单片机产品开发的基础。如果这个环节出现错误或缺陷,将对整个开发工作产生不良影响:
1.1硬件原理
设计硬件原理设计的任务是设计并绘制硬件原理图。1)最小应用系统设计:微处理器和存储器的选择、总线驱动、复位电路设计等。2)I/O通道设计:接口电路、A/D和D/A转换芯片在模拟I/O通道中的选择等。3)人机界面设计:键盘、显示器(LCD或NIXYE管)和接口设计。4) 系统扩展设计:外部RAM和ROM、定时/计数、中断管理、串行端口扩展等5)连接器定义:板间数据通信形式由连接器类型、引脚定义等决定
1.2资源分配
资源分配是分析内存、定时器/计数器、中断源、异步串行口、并行I/O口等内部资源和扩展资源的用途、工作方式、起止时间和限制条件,并分配端口地址。一方面可以减少资源的浪费。另一方面,如果发现资源不足,可以及时纠正原则设计中的潜在问题。
1.3电路板图
在用CAD绘制电路板时,必须注意:1)设备布置:干扰源远离敏感元件,键盘和显示器按用户要求的位置放置,CPU周围有其它设备。2) 接线方法:A.加厚电流回路;B.使地线形成闭环;C.分离三条母线;D.接线时避免直角或锐角;e.使晶体振荡器尽可能靠近引脚,用地线隔离时钟区,接地固定晶体振荡器外壳。3) 可靠性措施:A.减少冗余过孔,减少连接器和电线,尽量增加电线、电线和盘、孔和盘之间的距离;B.防止毛刺和不良焊接电阻材料造成的隐患;C.将集成块焊接在印刷板上;D.不要挂空I/O端口。
2软件设计
在软件设计中,首先要进行任务划分、数学模型、算法和数据结构、资源分配和结构设计、流程图绘制、子程序模块、仿真和调试,然后要考虑MCU产品开发的特殊性。
2.1准备工作
准备工作不充分会导致许多重复工作。1) 模块功能定义:根据需求确定整个程序的功能,将这些功能分解成多个子功能,确定这些功能模块与数据传输方式的关系。2) 计划数据类型并形成数据类型字典:计划数据类型以确保数据类型的一致性。参数的数据类型确定后,应形成数据类型字典,供编程时参考。3) 内存资源分配:合理分配未分配的ram单元。ram资源分配后,如果发现某些资源分配不合理,可以进行局部更改。
2.2系统监控程序
设计监控程序是根据当前单片机或事件的内外部状态,及时决策,实现相应的模块,完成指定的工作。监视器的扫描周期应尽可能短。监控程序的结构包括工单调度、键盘驱动调度等。监控程序的设计方法主要有状态分析法、状态转换法和事件驱动法。
2.3中断和子程序设计
1)中断:A.现场保护;B.及时返回;C避免中断再入;2)子程序设计和子程序调用:以子例程的形式提取重叠部分,并共同同意其进入/退出参数。优化程序时,还可以将所有可能合并的程序段或子程序合并为一个子程序。
2.4程序试验
程序测试可以采用白盒测试和黑盒测试。单片机测试工具主要是软件模拟器。在软件模拟器上调试后,可以与硬件调试相结合。
3硬件设计与软件设计的关系
单片机产品的完成,对硬件设计的理解是决定性的,它可以让你知道可行性有多重要。在具备软件设计能力的同时,可以合理配置系统功能。为了加快开发周期,一些企业往往把一个产品的开发分成两个相对独立的部分:硬件和软件,由总设计师进行规划和协调,分成任务,然后由不同的人并行完成。这是可行的,具有一定的技术实力和管理水平,也符合现代产品开发的规律。一般来说,软硬件功能的划分是根据运行速度、成本、可靠性等要求来确定的。
3.1系统的运行速度
系统的运行速度决定了按运行速度划分软硬件的功能。例如,一台单片机执行一条指令至少需要1μs,但完成任何一项工作都需要几条指令,这比数字电路慢得多;如果要求一项任务的执行时间小于10μs,则必须通过硬件电路来实现。否则,使用能够完成此任务的高速微处理器系统将造成浪费。
3.2成本要求
产品开发成本包括硬件和软件成本。软件成本具有开发成本高、复制成本低的特点。在量产产品的开发中,应尽量采用软件代替硬件,以降低成本。小批量产品不宜用软件代替硬件,这会增加软件开发的成本。
3.3可靠性
如果可靠性硬件措施适当,大部分干扰都可以消除。然而,硬件电路越复杂,系统的可靠性就越差。所以软件措施可以作为第二道防线。软件正常运行的前提是CPU必须正常。虽然当CPU不能正常工作时,可以通过看门狗复位,但看门狗的频繁动作会导致系统无法正常工作。另外,软件的抗干扰措施是以占用CPU为代价的。如果没有硬件来抵抗大部分的干扰,CPU就会耗尽,严重影响系统的工作效率和实时性。因此,要建立一个成功的抗干扰系统,必须做好硬件抗干扰措施,并注意与软件的密切配合。总之,有些功能可以用硬件来完成,可以提高工作速度,减少软件工作量;有些功能可以用软件来完成,可以降低硬件成本,简化电路,提高系统的可靠性。硬件和软件相辅相成。
4结论
总之,一个好的硬件设计只能是一堆昂贵的浪费产品,没有灵活的软件设计协调。硬件设计和软件设计是相互依存、密不可分的。
作者: curton, 来源:面包板社区
链接: https://mbb.eet-china.com/blog/uid-me-3876349.html
版权声明:本文为博主原创,未经本人允许,禁止转载!
minicaihong 2019-12-23 08:55