控制/MCU
我刚开始学习单片机的时候也有和题主类似的困惑。当时刚申请了个淘宝账号不久,刚看了下我的淘宝已购物品,第五件东西买的就是51单片机开发板,
当时放假带着开发板经历20几个小时的硬座,回到家点完LED灯后,先是嘴角微微一笑,然后各种困惑接踵而来,题主的问题就是其中之一。
单片机是怎么烧录程序的?单片机都没有启动,怎么就能和下载器通信了?
要回答这个问题先看一个数字电路,D触发器,如下图:
D触发器功能就是只在Clk信号的上升沿这个时间点把数据Data传递到Q,在其它任何时刻保持Q不变。这不就是一个很简易的,只有一位的存储器吗。从上图中D触发器的电路原理图里可以看到,D触发器就是由一堆与、非门组成的电路,控制存储器并不需要单片机CPU的参与,只需要一个Clk就可以了。
上图中的D触发器毕竟太简单,而且数据掉电就会丢失,难免有一些忽悠人的感觉,那我们再看下复杂一点的flash存储器是如何被读写的,这也是单片机里面常用的存储介质。
如上图是flash里面的一个存储单元,乍一看好像是MOS管,但仔细一看却是多了一个Float Gate。这个float gate其实是用氧化硅隔离了的。大概的工作方式是通过float gate里面的电荷影响开启电压,当float gate里面有电子时,开启电压会变高,可以理解是因为gate上的电场线在float gate上的电子上终结了,这时候MOS管是不导通的,被认为存储的是1。反之,当float gate上没有电子时,MOS管的开启电压就比较低,被认为存储的是0。所以控制存储器里存储的内容其实是一个物理问题,即如何控制float gate冲放电。感兴趣的可以参考我给的参考链接继续深究,我在这就不深究了,再深究就要露馅了。
上面说的是一个flash单元,也就是只能存储1bit,那512Kbit的flash,要怎么读写。下图是一个512kbit flash芯片的结构图,可以简单的不假思索的认为这块芯片是由一堆上面的单元再加上一些数字电路,比如串口控制器所构成的,对这个flash的读写同样也不需要单片机CPU的参与,只需要遵循serial interface的时序就可以了。所以在烧写单片机的flash的时候是不需要CPU的参与的,只需要遵循flash的接口时序就可以了。
全部0条评论
快来发表一下你的评论吧 !