作为嵌入式开发者往往比较关注硬件和软件的协调。本书介绍了除法器,信号发生器,滤波器,分频器等基本算法的电路实现,虽然都是基础内容,但是也是最常用到的基本模块,本书的内容比较对本人胃口。
我们先来看下本书内容简介,然后再浏览下各个章节的内容。
从简介来看,本书也是关注最基础,最常用的那部分算法的电路实现,比较贴合工程实践,适合无基础或者有一定基础的一线工程人员阅读。内容选择是贴合实践的。
第一章简介了芯片研发流程,算法和电路设计,算法和芯片验证的关系,算法工具等
第二章介绍了基本的数字电路基础,具备基本的计算机或者数字电路教育的这部分知识应该已经了解了。不过一些内容也可以快速翻阅下
本人觉得补码罗盘这个名词和理解方式也比较清新,容易让初学者理解,而不是教材中一大堆2的指数的公式。
当然结合本人自己学习时的理解,要理解这个补字,我当时的理解是不是按照圆环理解,而是按照距离理解。
一根线段长度固定,线段长度就是表示的数据范围,比如8位,长度就是256,正数是从线段起点0到指定位置的距离,而负数是从线段末尾之后开始到指定点的距离。
比如线段长度位256即0x100,那么-1则表示0x100往前走1个单位即0xFF。
1+0xFF就是0x100,0xFF就是1的补即-1.
第二章介绍的溢出保护和截断,四舍五入也是工程实践经常需要主义的地方,书中介绍了实现案例可以参考。本人实际开发中也会经常遇到类似问题,比如再调试某个JPEG编码IP时,在设置压缩质量较高或者较低时就会导致图片花,最终定位到就是硬件计算溢出了。
然后第3 4 5章节,介绍了假发,乘法,除法这三个最基本的模块。其中除法又是最关键的对性能面积等影响很大,需要重点优化。书中也分享了实现可以参考。
对于软件设计人员来说,了解其硬件实现也有利于理解编程。比如可以使用移位来代替除法,将除法转为2的指数倍数的除法使用移位代替,这在电机控制等使用低性能mcu的场合时经常使用的优化手段。
然后第6 7 8章节介绍了数字电路处理,滤波电路的设计,这部分也是非常基础但是很重要的内容,通常硬件设计也要结合软件的使用,所以理解这一部分硬件的实现,也有利于软件驱动的开发。
第九章介绍了sigma delta adc,个人建议这张好好去理解sigma delta 的原理,
本质他是一个负反馈系统,换句通常的话来说就是”多退少补,给多了再少点,少了再给多点”,本文微信公众号”嵌入式Lee”中分享了一些列sigma delta思想相关的文章,比较使用sigma delta思想,几行代码就可以实现降帧率算法,感兴趣可以关注公众号查找对应文章。
最后介绍了锁相环,CRC,浮点数模块的电路设计,这也是最基本的模块单元,比如锁相环就是嵌入式开发启动中首先要配置的,用于配置系统时钟,了解这部分实现,有利于知道如何去配置倍频系数,分频系数,甚至考虑切换频率是否能无缝切换,以及频率异常检测等。
我之前嵌入式开发中就有设计过外部晶振异常,切换到内部rc始终使用的可靠性开发实践,这些都需要对硬件实现有一定了解。
Crc算法也是最常用的算法, 嵌入式开发各种协议开发中都会遇到,
本书中距离的直接除法,其实就是很好的理解方式,而不是很多书中参考资料上来就是一大堆算法
最后介绍的浮点数算法的实现也是很重要的内容,可以参考参考了解下,对应软件来说可能对部分无感,因为都是编译器都实现好了。但是有时也需要关注一些异常情况的处理,比如非法值的判断,精度等等。
总结看完本书,最后来总结下,本书的内容个人觉得很基础,但是很重要,也是最常用到的,内容结合工程实践,都有实现案例,个人觉得比较适合初学者和有一定基础的阅读。
全书介绍的这些内容个人觉得都可以去看看,结合下自己的思考和实践,不一定要说拿到书中的代码就能用,重要的是要去了解相关的知识的原理背景然后自行查找资料更深入的研究,可以参考书中实现。 本人也结合自己软件开发工作,和硬件的关系等分享了一些案例和感想。
总的来说本书虽然不华丽,但是很内容充实,内容虽然不高大上,但是很重要。且全文阅读起来不是很晦涩,比较值得翻阅参考。