Matlab_Simulink动力学系统建模与仿真
《Matlab/Simulink动力学系统建模与仿真(第2版)》主要介绍了动力学系统中微分方程模型、传递函数模型和状态空间模型等建立的基础理论,并引入了Simulink仿真技术,为解决复杂动力学问题(特别是不易得到解析解的动力学问题)提供了方法。 《Matlab/Simulink动力学系统建模与仿真(第2版)》编排了较多的例题来说明各类动力学模型的仿真模型的建立方法,以及差分模型、相似模型、时域和频域等仿真模型,最后将控制动力学基础知识作为后继研究的扩展内容做了介绍。 《Matlab/Simulink动力学系统建模与仿真(第2版)》是一本多学科内容相交又的教材,同时涉及了力学、电学和动内容简介本书主要介绍了动力学系统中微分方程模型、传递函数模型和状态空间模型等建立的基础理论,并引入了 Simulink仿真技术,为解决复杂动力学问题(特别是不易得到解析解的动力学问题)提供了方法。书中编排了较多的例题来说明各类动力学模型的仿真模型的建立方法,以及差分模型、相似模型、时域和频域等仿真模型,最后将控制动力学基础知识作为后继硏究的扩展内容做了介绍。本书是一本多学科内容相交叉的教材,同时涉及了力学、电学和动力学控制等学科的交叉知识。本书适合具有一定数学和力学基础知识的理工科专业的本科高年级学生使用,可以作为机械工程、土木工程、车辆工程和仪器仪表、印刷机械等本科高年级学生和相关专业的研究生在学习有关动力学系统建模与仿真内容时的参考书,还可供相关工程技术人员参考。图书在版编目(CIP)数据Matlab/ Simulink动力学系统建模与仿真/黎明安,钱利编著.-2版.一北京:国防工业出版社,2015.7ISBN978-7-118-102055L.①M..Ⅱ.①黎.②钱..Ⅲ.①计算机辅助计算—应用—动力系统一系统建模②计算机辅助计算一应用—动力系统一系统仿真Ⅳ.①TP391.75②019中国版本图书馆CP数据核字(2015)第138118号※宫原社出版发行(北京市海淀区紫竹院南路23号邮政编码100048)天利华印刷装订有限公司印刷新华书店经售开本787×10921/16印张19字数456千字2015年7月第2版第1次印刷印数1—3000册定价49.00元(本书如有印装错误,我社负责调换)国防书店:(010)8854077发行邮购:(010)88540776发行传真:(010)88540755发行业务:(010)88540717前言本书是在为“工程力学”本科专业开设的“动态系统建模与计算机仿真”课程基础上多次改编而成的。本书一开始就采用了模型框图,使学生在学习过程中掌握和使用仿真框图的表示方法,为今后建立仿真模型奠定基础。本书结合了 Simulink仿真平台的基础知识,学生可以在各章的例题中学会 Matlab基本的编程能力和 Simulink基本模块的应用;将 Simulink的基础知识分散到各个章节中由浅入深地讲授,使学习者容易接受。本书第1版于2012年出版,此次在第1版的基础上修改了部分错误,个别习题也做了调整,使内容编排更趋于合理。全书分为10章,第1章~第3章介绍了建模与仿真的数学力学基础知识和以框图来表示模型的方法,主要以微分方程模型为主线介绍了简单仿真模型的建立。第4章介绍了系统的传递函数模型以及面对传递函数的仿真模型的建立。第5章介绍了状态空间模型。第6章介绍了基于采样的将连续系统离散化的方法。第7章介绍了机电相似模型。第8章介绍了动力学系统的时域瞬态响应分析方法。第9章介绍了频域分析方法。第10章介绍了控制动力学基础。全书贯穿了 Matlab/ Simulink仿真技术。本书中的仿真例题均在 Matlab(R2007a)下调试通过,希望读者在该版本下建立仿真模型本书由西安理工大学师俊平教授、王忠民教授审阅,两位教授对本书内容的编写提出了宝贵的修改意见,研究生雷霜、崔凯和朱晓雄等对初稿进行了认真的校对,在此表示衷心感谢。西北工业大学支希哲教授、朱西平教授,空军工程大学冯立富教授,陕西理学院张宝中教授,西安科技大学郭志勇教授,西安理工大学徐开亮博士等在编写过程中给予了大力帮助,在此表示深切感谢由于水平有限,本书还有很多需要改进的地方,敬请使用者提出宝贵意见。编著者Ⅲ目录绪论…………………………………………………………………………1第1章系统建模与仿真基础…………1.1系统仿真模型框图表示法·4441.1.1基本仿真元件………1.1.2简单仿真框图结构51.2拉普拉斯变换…1.2.1拉普拉斯变换的定义及其性质1.2.2拉普拉斯逆变换………………………………111.2.3拉普拉斯变换在求解线性常系数微分方程中的应用1.3z变换与Z逆变换…161.3.1Z变换的定义1.3.2Z变换的应用…171.4矩阵的特征值与特征矢量…181.4.1标准特征值问题…191.4.2广义特征值问题1.4.3相似变换及其特性…………………………………………21习题5第2章动力学系统的微分方程模型………………………………………282.1动力学建模基本理论…………………………………………………282.1.1动力学系统基本元件…282.1.2动力学建模基本定理…………………………292.2哈密顿动力学建模体系382.2.1拉格朗日方程2.2.2哈密顿原理2.3一维弹性体的有限元建模………422.3.1梁单元质量矩阵与刚度矩阵…422.3.2总体系统动力学微分方程………………………………442.4一维弹性体系统的假设模态法482.4.1模态函数……………………………………………482.4.2系统的动能和势能…………………492.4.3系统的动力学方程2.5 Simulink高级积分器的仿真模型建立…512.5.1高级积分器端口………522.5.2高级积分器在仿真中的应用…………………………52习题………………………………………………………………………………………54第3章动力学系统响应分析的数值方法……583.1数值积分法和数值微分法…583.1.1数值积分法………………………………………………………………583.1.2数值微分法……593.1.3多自由度振动系统的差商模型…………………………………633.2龙格一库塔法……653.2.1二阶龙格一库塔法………653.2.2四阶龙格一库塔法……………………………………………663.3四阶龙格一库塔法仿真程序设计673.3.1求解一阶微分方程四阶龙格一库塔法程序设计……………………673.3.2求解一阶微分方程组的四阶的龙格一库塔法程序设计693.3.3高阶微分方程的四阶龙格一库塔法程序设计703.4隐式逐步积分法…………………………………………………723.4.1线性加速度法723.4.2威尔逊θ法…3.5微分方程的边值问题的求解…………………763.5.1解线性方程边值问题的差分方法……………………………………763.5.2解线性方程边值问题的打靶法(试射法)…773.5.3关于三对角矩阵的追赶法程序设计……·,,,,,,,,,,,,.,,,,……793.6关于 Simulink环境中的求解器 Solver803.6.1常用求解器…………………………………………803.6.2求解器的选择813.7Malb中符号微积分……………823.7.1符号微分与符号积分……………………………………823.7.2利用符号运算求解微分方程习题……………………………………………………………………884第4章系统传递函数模型84.1传递函数及其特性…4.1.1传递函数定义……………884.1.2传递函数的特性…4.1.3传递函数的图示方法…894.2基本环节的传递函数……………………894.2.1比例环节……………………904.2.2一阶延迟环节4.2.3微分环节914.2.4积分环节…………914.2.5振荡环节………………914.3传递函数的其他形式934.3.1传递函数的零极点形式……………………………………………934.3.2传递函数的留数形式…………………………………………934.3.3传递函数的串联、并联与反馈连接形式944.3.4控制系统的开环传递函数……………………………………974.4多自由度振动系统的传递函数模型……………1014.4.1直接方法,..,.,,...,,,,,,.,·,,,,,,,,,..,·.、,,,,,,,,,,,,··,1014.4.2模态分析法…1035传递函数模型的 Simulink仿真模型建立…………………1054.5.1与传递函数相关的 Matlab运算指令…1054.5.2传递函数模型的 Simulink仿真模型建立…1084.6弹性系统的传递函数仿真模型…1114.6.1弹性系统的传递函数1114.6.2传递函数 Simulink仿真模型………………………………………………112习题113第5章动力学系统状态空间模型1175.1动力学系统的状态空间模型………………1175.1.1状态空间方程的一般形式1175.1.2化高阶微分方程为状态方程——不含输入导数情况……………………1185.1.3线性多自由度振动系统的状态空间模型1215.2微分方程模型与状态空间的关系1235.2.1微分方程模型与状态空间模型特征对的关系……………………1235.2.2系统含有输入导数的状态空间模型1235.3状态空间的相似变换…………………………………………1295.3.1一般情况…1295.3.2特殊情况(可控标准型的情况)…………………1305.4系统的状态空间模型与传递函数模型之间的转换……1315.4.1从状态空间模型转换为传递函数模型……………………1315.4.2模型转换 Matlab函数1325.4.3传递函数模型转换为状态空间模型的直接方法∴……1345.5传递函数模型转换为状态空间模型的串并联法…1355.5.1并联模型法,.,,,,,,,,,,,,,,,1355.5.2串联模型法1385.6状态空间仿真模型建立………………………………………1415.6.1非线性时变系统1415.6.2非线性定常系统……………………………………1425.6.3线性时变系统∴…………1425.6.4线性定常系统……………425.7关于混合系统仿真……………………144习题…∴∴…145第6章连续系统的相似离散法1486.1线性连续系统相似离散法…1486.1.1连续系统状态方程的精确解…486.1.2零阶保持器下状态方程的离散化…1496.1.3一阶保持器下状态方程的离散….,.,,.,,,,.,,,,,·,,,,,,,,,1506.1.4离散系统仿真模块1516.2状态转移矩阵…1526.2.1状态转移矩阵的特性1526.2.2求转移矩阵的几种方法…1536.3离散化系统的传递函数模型…………………1546.3.1零阶保持器的传递函数1546.3.2一阶保持器的传递函数…1546.3.3离散系统的传递函数模型1566.4线性时变系统状态方程的离散化………………………1586.4.1线性时变状态方程的解……………………1586.4.2线性时变系统状态方程离散化…………………1596.4.3近似离散化1596.5离散系统仿真模型建立…………………………1636.5.1有关离散系统 Matlab函数的应用1636.5.2状态方程的离散——基于单位延迟的状态空间仿真模型1666.5.3利用离散传递函数模块的 Simulink仿真模型……∴1686.5.4使用离散状态空间模块 Simulink仿真模型168习题……………………………………………………………………………170第7章机电模拟系统………………………………………1737.1电学基本元件和基本定律1737.1.1电学基本元件……1737.1.2简单电路动态方程1747.1.3电气系统的数学模型建立…………………………………………1747.2无源滤波器……………1787.2.1滤波器基本类型1787.2.2无源RC滤波器……………………………………………………………………………1857.2.3无源RLC滤波器………………………………………………………1867.3机电相似系统1867.3.1力一电压相似……………………………………………………………………187Ⅶ7.3.2力一电流相似…1887.4机电耦合系统的数学建模∴…1897.5运算放大器系统的数学建模∴……………190习题………196第8章系统瞬态响应分析………2008.1典型状态和典型激励的瞬态响应…2008.1.1系统响应种类…2008.1.2常见的几种典型外激励……………2018.2一阶系统的瞬态响应分析·……………………………………………………2028.2.1系统在零输入响应……………………2028.2.2系统零状态响应…………………………………………………2028.2.3标准一阶系统的单位阶跃响应特性……………2048.3二阶系统瞬态响应分析…………………………2068.3.1标准二阶系统的单位脉冲响应………………2068.3.2欠阻尼标准二阶系统的阶跃响应2098.3.3欠阻尼标准二阶系统性能指标…2108.3.4非标准欠阻尼标准二阶系统性能指标…∴…2148.3.5欠阻尼二阶系统的单位斜坡响应………………………………2178.3.6过阻尼二阶系统的单位阶跃响应………………………2188.4 Matlab/ Simulink仿真…………………………………………………………2208.5高阶系统的响应2218.5.1高阶系统的传递函数……………………………………2218.5.2高阶系统的瞬态响应222习题……………………………………………………………………………222第9章动力学系统频域分析方法………………………………………………2269.1概述……………………………………………2269.2频率响应函数…2269.2.1谐和激励下系统的响应函数…………………………………………2269.2.2系统的传递函数与系统的频率响应函数………………………2279.2.3系统频率响应特性曲线(频响曲线)……………………2309.3单位脉冲函数与频率响应函数.·······:··:.·.·········;···;··:.:··2329.3.1单位脉冲响应函数(权函数)…………………2329.3.2单位脉冲函数与频率响应函数…………………………………2339.3.3标准二阶系统的频率响应特性……·.···········2359.4频率响应分析法仿真……23794.1连续系统频率响应特性:,···:,,2379.4.2线性多自由度系统的频域分析2459.4.3快速傅里叶变换与仿真……………………………246Ⅷ9.5频率响应特性在振动系统参数识别中的应用……2489.5.1幅频、相频曲线识别法…………2499.5.2实频、虚频曲线识别法2509.5.3导纳圆的参数识别法…………………252习题………………254第10章动力学系统控制基础…25610.1动力学控制的基本概念…25610.2PID控制系统…………………25710.2.1PID工作简介…25710.2.2PID的数学模型…………25810.2.3PID控制系统的响应分析…25910.3状态反馈控制系统··..···.···:········.···········:······…………27010.4最优控制………………………27410.4.1固定端点的问题最优控制…………………………………27510.4.2始端时刻固定、末值状态自由情况下的最优控制27610.5线性系统的二次型最优设计…………279习题………………………………………………………………………285附录………………………………………………………288附录1 Simulink仿真系统常用模块库288附录2典型函数的拉普拉斯变换和Z变换…………………………………………290附录3 Matlab/ Simulink部分功能设置…………29参考文献…292Ⅸ
- 2020-12-04下载
- 积分:1
ARM LINUX入门与实践
一个嵌入式爱好者的自学体验,从零介绍ARM和LINUX的方方面面博客稳阁丛书程方网名阿南曰曰强个嵌入式爱好者的自学体验南编著与实践京航空统无荟出版社内容简介本书是以作者自学、应用嵌入式 Linux时的笔记(包括实验、出现的问题、调试过程、经验总结等)为基础,再增加应用到的硬件平台而成的。全书以亲自制作实验平台硬件,亲自设计实验软件为线索,指导读者从零开始学习到最终掌握ARM和 Linux应用的方方面面。全书可以分成ARM硬件、ARM前后台系统应用和基于Lnux系统的应用3个部分。ARM硬件部分包括整个硬件的原理分析、原理图、PCB板的绘制、元件焊接、硬件的检测与调试。ARM前后台系统应用部分包括启动代码、处理器内部外设、扩展外部设备及接口等的所有底层软件分析与实现,还有 Bootloader、文件系统、GUI等的原理与实现。 Linux系统的应用部分包括基于PC机的操作、应用编程和驱动、嵌入式 Linux的汗发环境创建、各种硬件的驱动实现、网络编程、图形用户界面设计等。本书可作为有志于掌握ARM、 Linux等嵌入式技术的高校学生、工程师等的参考书。图书在版编目(CIP)数据ARM Linux人门与实践/程昌南,方强编著.一北京:北京航空航天大学出版社,2008.10ISBN978-7-81124-422-9I.A…Ⅲ.①程…②方…Ⅲ.①微处理器,ARM系统设计② Linux操作系统一系统设计Ⅳ.TP332TP316.89肀国版本图书馆CIP数据核字(2008)第150813号c2009,北京航空航天大学出版社,版权所有。未经本书出版者书面许可,任何单位和个人不得以任何形式或手段复制本书及光盘内容。侵权必究。ARM Linux入门与实践一个嵌入式爱好者的自学体验程昌南[网名阿南]编著方强责任编辑董立娟北京航空航天大学出版社出版发行北京市海淀区学院路37号(100191)发行部电话:010-82317024传真:010-82328026http://www.buaapress,comcnE-mail:bhpress@263.net涿州市新华印刷有限公司印装各地书店经销开本:787mm×960mm1/16印张:31.5字数:706千字2008年10月第1版2008年10月第1次印刷印数:;5000册ISBN978-7-81124-422-9定价:49.50元(含光盘1张)本书的使用及学习方法ARM和 Linux学习方法的体会如何才能学好或尽快上手ARM和 Linux?这是很多初学者想问的,也曾经在网上讨论过。其实学习没有捷径,主要还是取决于学习态度和学习方法。ARM、 Linux也一样,在此阿南根据自学过程中的体会和网上的讨论作一些总结。ARM的学习。有了单片机或计算机结构的基本知识、C语言的基础,上手ARM是比较容易的。学习ARM,首先应该了解一下ARM的体系结构,了解它有哪些版本、哪些模式、哪些寄存器、异常等。这方面的内容可以参考《ARM体系结构与编程》一书,这本书介绍的内容还是很全的,可以先快速地浏览特别是汇编指令不需要记住,以后应用时再查。其次选定一种具体厂家型号的ARM处理器,学习该处理器相关的开发工具的使用,如开发环境、仿真器及评估板等。然后可以分析该处理器的外围扩展方法,如 SDRAM、 NAND Flash等,一般官方或第三方都会提供原理图,可以用来分析。接下来要理解该处理器的启动过程,亲自尝试从块裸板逐步运行自己的应用程序,也可以参考官方的启动代码及例程。最后就可以调试、测试该处理器的各种外围部件,例如定时器PWM串口、LCD等,特别是中断及执行过程。Liux的学习。尽管我们最终应用的是嵌入式 Linux,但还是要先在PC机下学习,因为无论基于PC机还是嵌入式处理器的 Linux开发、编程、调试等都是相近的,而PC机的性能、资源等都更加丰富,嵌入式 Linux的开发环境通常也都建立在PC机 Linux环境下,另外Linux大量的书籍也都是针对PC机写的。阿南觉得学习的顺序应该是先在PC机上安装Linux系统,再参考相应的入门书籍,主要是熟悉 Linux环境,学习常用的命令和操作(不一定多,基本、常用的就可以,以后在使用过程中慢慢积累),理解各 Linux下的目录结构与作用等。其次,学习在Liπux环境下编程。可以参考《GNU/ Linux编程指南》或《UNX环境高级编程》,它们介绍了文件描述符的概念,打开读写等操作的系列基础知识;没有这些基础而直接看《 Linux设备驱动程序》会觉得困难。再次,了解一下 Linux内核源代码树的目录结构、编译等。最后,学习《 Linux设备驱动程序》,理解驱动程序的结构框架等。根据实践需要也可学习网络编程和图形用户界面GUI编程,可以参考学习《UNIX网络编程》和《C++ GUI Qt3编程》。另外由于 Qt GUI是基于C++的,所以需要学习C++的知识,也可以选择其他如Microwindows、 MiniGUI等。有了PC机的 Linux基础及编程知识后,就可以直接应用于嵌入式前言了!此时需要一个硬件平台(如开发板或直接的产品等目标系统)和该平台的开发环境。一般的处理器原厂或第三方都会提供开发环境,所以不需要我们移植,它包括建立在PC宿主机上的编译等工具和嵌入式 Linux内核(包括硬件驱动等BSP)源码。此时只须学习开发环境的建立和使用以及将PC机所学的知识应用于具体的嵌入式平台。如果涉及硬件及驱动那么应三该有一定的硬件调试和解决问题的能力,此时单片机、ARM基础及外围设备接口的调试能力将起到很重要的作用。很多朋友(包括非电子、自动化专业的朋友)都希望将来从事 Linux驱入门与实践入动方面的工作,认为学习了Limx驱动方面的知识就OK了而往往忽略硬件本身的调试解决问题能力,阿南觉得这是不正确的。因为 Linux驱动与前后台控制硬件外设的区别只在于它与应用程序的接口,它要遵循一定的结构和规则,这种规则涉及的也就是通常讲的 Linux驱动知识和技术,它是固定的,是容易掌握的,只要遵循就不会出问题。而硬件及外设是千变万化的,它所涉及的技术是多方面的,除处理器本身外,还有各种接口及协议、数字、模拟技术等。这些在设计、调试时是很容易出现问题的,此时要求我们有一定的调试、测试手段和方法。所以,阿南认为要想成为一名优秀的 ARM Linux驱动工程师,首先必须是一名优秀的、具有丰富调试经验的单片机或ARM处理器应用工程师本书的使用与相关知识的同步学习曾经有一个朋友这样告诉阿南:“如果看您的笔记就能掌握 ARM Linux驱动,那就是最好的目的了”。对不起,阿南做不到,写不出这种“葵花宝典”。这本书的前身是在21CBBS上发表的《嵌入式 Linux人门笔记》,主要是阿南在自学 Linux和在项目中应用 Linux时记录的笔记、出现的错误和心得等,是自己平时工作中非常重要的参考手册。发表后得到众网友的喜爱、支持及北航出版社胡晓柏主任的鼓励,故花更多的时间、精力将笔记丰富出版。嵌人式是一门实践性很强的技术,而《嵌入式 Linux入门笔记》主要记录的是 Linux等相关的软件部分,没有包括硬件相关的部分,为了让读者能够亲自实践,故增加了ARM及硬件部分。并且亲自设计了AN2410SSB(最小系统板)和AN2410MB(扩展底板),给出了所有原理图,介绍了制作过程,记录了用裸板开始调试的步骤和过程,介绍了如何让ARM运行及启动等各方面的内容,以及前后台(无操作系统下)的应用等。本书没有将所涉及的技术及理论都包括进来,不仅篇幅有限,而且也没有必要,因为已有太多相当经典的资料。本书第1章为概述。第2章分析了硬件的原理图,读者应该阅读S3C2410A的数据手册,特别是信号引脚功能描述,内存控制部分。第3章主要介绍了关于 Protel原理图和PCB板的绘制,如果读者没有 Prote的基础可以参考人民邮电出版社的《电路设计与制版— Protel99入门与提高》或其他 Protel书。如果有 Protel基础,只是没有绘制过多层板,那么可以参考人民邮电出版社的《 Protel99E多层电路板设计与制作》。第4章介绍了S3C2410A系统核心部分的调试方法和工具的使用,以及利用工具进行测试的方法、手段。该部分是整个系统的基础,也是非常重要的,读者需要多试验,出现问题时多参考S3C2410A的数据手册。第5章专门分析了S3C2410A的启动代码,用于理解S3C2410A的启动过程,中断处理过程及存储器等前言相关部分,也是非常基础和重要的。因为启动代码由汇编组成,此时可参考清华大学出版社的《ARM体系结构与编程》,学习理解ARM的汇编语言等相关知识。第67章为硬件平台上实现ARM的外围实验和扩展实验读者仍然要参考S3C240A的数据手册,在仿真调试情况下理解ARM内部的寄存器、存储器、状态寄存器等与ARM体系相关的知识。另外还要阅读如WAv音频格式,SD卡规范及相关的数据手册等。CPLD部分读者可以参考电子工业出版社的《基于 Quartus II的FPGA/CPLD设计》,学习基本的工程创建,图形设计输入,编译和编程等。 Altera cpld更详细的资料可以去官网下载。第8章介绍了前后台系统还需要考虑的相关知识: NAND Bootloader、文件系统和图形界面。图形界面部分,读者需要理解一些基本的绘图原理和算法,可以参考机械工业出版社的《计算机图形学的算法基础》。第9章介绍了在PC机下的 Linux各方面技术,这些都是嵌入式 Linux的基础,非常重要,涉及的知识内容也很多。在该章中,阿南只是总结了一些实践操作的部分内容所以还需要读者自己去参考学习Linux的这些书籍: Linux系统的基本操作参考清毕大学出版社的《 Red hat linuⅹ9系统管入门与实践理》(这本书应该被实践安装的桌面 Linux系统相应版本的书替代),应用编程参考清华大学出版社的《GNU/Linuⅹ编程指南》或机械工业出版社的《Uniⅸx高级环境编程》,驱动编程参考中国电力出版社的《 Linux设备驱动程序》。第10章主要介绍S3C2410A的嵌入式 Linux开发环境的搭建及工具的使用。这里采用的是MIZI公司的 Linux for s3C2410平台,读者也可以直接参考《 MIZI Linux sdk for s3C2410》文档。第11章介绍在S3C2410A下实现 Linux驱动,很多原理性的知识依然要参考《 Linux设备驱动程序》一书,而且要多试验验证。读者在调试实现过程中也可以直接参考 Linux for s3C2410的内核源码中和硬件、驱动相关的代码例子(可以在 Windows系统下安装 Source insight软件,方便阅读 Linux内核源代码)。第12章介绍嵌人式 Linux桌面系统,可读写文件系统 YAFFS的实现,嵌入式Web服务器BOA、NFS及WIFI。这些都是实践性很强的应用操作,所以读者主要是应用它们,出现问题时上网查找相关应用操作,寻找解决问题的思路,再测试验证。第13章是网络编程方面的知识,主要参考清华大学出版社的《UNIX网络编程第1卷:套接口API》,目的是掌握TCP客服机/服务器的实现及网络的调试方法。第14章介绍嵌人式GUI开发环境的创建和开发方法,桌面系统的移植。学习前读者应该先学习基于Qt的应用编程,可以参考北航出版社的《C++GU1Qt3编程》,如果没有C++的基础可以参考清华大学出版社的《C++程序设计教程》。致谢感谢我的导师(也是本书的另一位作者)—方强多年来的关心与指导,且对本书付出的辛苦劳动。感谢我的公司——广州市天誉创高科技有限公司及同事们,他们对本书提供了很大帮助。段克为本书绘制了部分电路图,丁亚锋为本书编写并调试了部分程序。另外,还要感谢曾水生、李玉琪、刘卫国、张端峰、龙靖、彭雄飞、王勇、黄焕立、王菊林、黄斌、何运辉、吴建、方斌、黄伟、傅良英、胡孝发、黄志艳、张凯、欧孔德、梁家乐、宁雪玉、蔡青青及蓝萍等人的帮助。前言感谢深圳英蓓特公司提供 Realview mDK开发工具及相关资料和技术支持。感谢EDN网为本书创立书友会(hp:// group. ednchina, com/999/)和开展本书的AN2410SSB学习板助学等活动。感谢北京航空航天大学出版社嵌入式系统事业部主任胡晓柏的信任与鼓励,感谢21CBBS上网友们的支持、建议和帮助。感谢我的父母、老师、姐姐、姐夫及所有亲戚朋友们,你们的关心与爱都是阿南不断前进的动力。入门与实践阿南的技术水平、经验都还很欠缺,书中的错误和不妥之处在所难免,恳请广大读者朋友们批评指正;也欢迎登陆21CBBS的ARM论坛或《 ARM Linux人门与实践》书友会与阿南交流,共同提高。阿南2008年9月自序嵌入式自学经历和体会目的回想从2000年自学单片机开始,到后来的ARM,再到 Linux,自己经历了很多,也体会了很多,有经验也有教训,所以希望通过此次机会与读者相互交流,也让更多的爱好者在自学过程中有所借鉴。如果能得到您的共鸣,可以发送电子邮件给阿南:c422@hotmail.com。初识单片机和电子竟赛大一的暑假没有回家,留在学校里希望能向师兄学点技术,后来他向我推荐了单片机和全国大学生电子竞赛。和普通学生一样,阿南认为能参加电子竞赛是多么自豪呀!且对单片机很是好奇,于是去图书管借了些基础书来阅读,很快就被它的强大功能吸引,也产生了迅速学好、将来参加电子竞赛的念头买仿真器,下定决心学好单片机当时学校还没有开模拟、数字电子等专业基础课程,所以学习单片机还是很困难的,一般阿南都拿两三本单片机基础书一起对照着看,旁边还放着模拟、数字等基础教程以便查阅。暑假很快就过去了,期间虽然专心学习,但进展很慢,后得到师兄的指点:要想学好单片机,必须要有个仿真器实践大概1500元。这么贵?(这对农村孩子来讲,实在太贵了!另外买了之后,还不一定就能学会呢!)经过一个星期的思想斗争,终于下定决心要买。当时的想法是这样:“从小家里就穷,家人为了阿南付出了很多心血,所以阿南必须学好技术,好将来回报他们;要参加电子竞赛且取得好成绩,在技术上必须要超越同学、师兄及其他院校的同齡人,而论聪明、基础不可能占优,唯有比他们更早开始,更加勤奋和善于思考;是的,很心疼父母的这些辛苦钱,也正是这个原因更促使阿南尽最大努力,更加勤奋地学习”。培养兴趣,它是最好的老师买了仿真器后,阿南比以前任何时候都更加勤奋了:图书馆、书店找书学习,独自骑两小时自行车买器件,万能板上焊接电路,学习自己编程,用仿真器仿真,万用表测量各种信号变化等。对于单片机,阿南到了近乎疯狂的地步,调试遇到困难时的痛苦、解决问题后的畅快和兴奋,都让阿南对它产生了很深的感情,也已不再是在当初的巨大压力和包袱下学习了,而是在种很浓厚的兴趣下享受着它带来的喜怒哀乐。自序冲破难关,学会独立时间过的真快,自学单片机已经一年了,在这期间阿南对51系列单片机的原理已经理解得差不多了,也实验、测试了所有的片内外设,但只有并行通信测试还一直没有成功过,就是ADCo809的A/D转换实验。这个实验已经断断续续调了近两个月,分析了书上所有的相关内容,对原理也已经很清楚了,但仿真器就是采集不到正确的数据。当时遇到困难时没有像现在这样方便的网络,也没有示波器,只能分析书本和凭自己的想象和试验,另外总是期盼着师入门与实践兄能帮助解决。后来静下心来想了各种解决测试的方法和线索,一个个排除,最终在仿真器说明书中发现“POD52仿真头的P0、P2口只能用作IO用,POD51可以作为总线用”。由于直使用POD52的仿真头,所以读/写等信号都没有出来,换成POD51果然就成功了。(当时真的很兴奋!)之后,单片机学习就变得非常顺利,一般的系统都能独自完成,也终于可以自豪地宣告:阿南的单片机人门啦。在这一过程中阿南体会到了独自思考、解决问题的重要性,也明白了开发工具在实践过程中所起到的作用。(其实很多问题是要用示波器测试和请求工具厂商技术支持的。)上帝是公平的,机会留给有准备的人人门单片机后,不仅自己做些小课题,也用它完成课程设计、参加校里组织的竞赛等。虽然没有参加院里的工程师摇篮协会,但自己的勤奋、动手能力及对单片机的执着还是得到了老师的肯定。初识贾老师(负责组织参加全国大学生电子竞赛相关事务的老师)时,他给了一道1999年的竞赛题——工频真有效值表。该题有很多的运算,考虑到汇编语言实现的难度,所以阿南学习用C语言为单片机编程。由于大一时开过C语言的基础课,再加上良好的汇编语言基础能力,这个课题很顺利地完成了。之后,贾老师将阿南推荐给方老师,目的很明确:学好单片机,备战2003年SONY杯全国大学生电子设计竞赛。有了方老师的指导,再加上实验室的各种硬件,阿南开始了一个新的阶段:不仅学习单片机和C语言编程,还要学习单片机以外的相关技术,如 Protel绘制原理图、PCB制板;学习各种总线和协议,学习电动机控制等;还要学习PLC、MCGS组态软件以及VB。这2年半的时间里,阿南早已不仅仅是为了竞赛更多的是在体会和享受着整个学习过程。回想自己5年的大学学习生活,感觉真的很幸运,最初的王师兄,后来的贾老师和方老师、女朋友及所有帮助过阿南的朋友,在此对他们表示衷心的感谢,感谢他们总是在适当的时候出现指导和帮助阿南,让阿南为之感动,为之奋斗。同时,也深深体会一个道理:机会总是留给足够真诚,足够勤奋、执着,有所准备的人;连自己都不能感动,何以感动别人?感动上帝?坎坷的一年,技术上的追求而不断放弃工作当同学们纷纷进入大中专院校,从事让多少人羡慕的稳定的教师职业时,阿南却选择了南下打工,希望在技术上有更高的造诣。当时ARM在国内已经流行,阿南和广大爱好者一样,和当年初识单片机一样,也被它深深地吸引。辗转了几家公司后,终于可以从事单片机的应用开发。半年后,阿南作出了一个让
- 2021-05-06下载
- 积分:1