利用TUSB3410 USB-TO-UART桥接芯片实现MSP430微控制器与USB设备通讯的一种接口方案
通过该USB接口可实现高达921 600bit/s的数据传输速率,也可通过该接口下载MSP430程序代码,是一种MSP430系列微控制器的高效USB接口解决方案
硬件设计
系统结构框图如图1所示,主机PC与MSP430之间可进行全双工串口通讯,主机PC经TUSB3410虚拟的一个COM口与MSP430的硬件USART模块进行通讯,本文重点叙述TUSB3410与MCU之间的软、硬件设计。
系统采用USB总线供电模式,MCU可通过I2C接口对TUSB3410进行在线编程及外部EEPROM存储器的配置。
1TUSB3410接口芯片
TUSB3410为TI公司推出的一款用于USB-TO-UART端口的桥接器,包括通过USB总线与主机进行通信所必需的全部逻辑电路,符合USB20规范,支持最高12Mb/s的全速传输,支持USB中止、恢复及远程唤醒功能;同时,其内部包含一个8052的CPU核、16KB RAM、包含I2C引导加载程序的10KB ROM,4个通用I/0口,具有USB总线供电和自带电源两种供电模式。
TUSB3410引脚框图如图2所示:
2.USB配置
TUSB3410可以支持多种应用,本文所描述的参考设计配置如表1所示。
对于USB的兼容性来说,任意USB设备都具有唯一的VID(厂商识别码)和PID(产品识别码),VID/PID值作为一描述符传输给主机PC,并且与存储在驱动INF文件中的值相匹配, *** 作系统根据VlD/PID加载不同的驱动程序。
外部EEPROM用于存储配置参数,如VID/PID信息等,既可通过MCU经12C模块将EEPROM的镜像文件写入EEP-ROM,也可通过专用EEPROM编程器直接对EEPROM进行镜像文件写入TUSB3410也通过12C接口读取EEPROM数据。
3.硬件电路原理
系统原理图如图3所示,本文以MSP430F1612(U1)为例,任意一款内部含UART模块的MSP430微处理器均可与TUSB3410连接,MSP430F1612为MSP430系列中的高端MCU,丰富的资源使得开发具有更多的灵活性。
MSP430F1612选用8MHz晶振工作,MCU的6个引脚P1-P6通过PORT1-PORT6的8引脚插针引出,方便MCU与TUSB3410(U2)及外围器件的连接;SW1-SW4按键和LED1-LED4指示灯均通过I/O口控制,演示测试过程;同时,MCU与标准14针JTAG接口连接用于调试程序或调整电压值。
系统采用USB总线供电,同时LED5指示灯点亮,TUSB3410(U2)的USB数据信号经双路USB端口瞬态抵制器SN75240(U3)后连接到标准的USB B型连接口,以增强系统ESD抗干扰能力;USB总线提供的5V电压经TPS77301(U4)36V LDO稳压后作为MCU系统的VCC电压。
外部EEPROM(U5)通过12C通讯并存储USB配置参数,EEPROM的大小根据存储量选择,编程时通过短接JP1跳针与EEPROM的SCL信号线相连,同时TUSB3410通过USB将标准的VID/PID值传送到主机PC。
TUSB3410选用12MHz晶振,与MCU信号连接如表2所示,数据传输时,MCU的UART模块开始工作,支持TUSB3410所有波特率,同时通过12C模块与外部EEPROM采用在线编程方式直接存储数据MCU的P3O/SETO引脚作为TUSB3410的复位脚,当MCU访问EEPROM时,复位该引脚,当没有外设连耐也可用该引脚进行复位测试。
4.低成本参考设计
系统的功耗设计可以从两方面考虑:(1)不使用外部EEP-ROM;(2)不使用外部晶振。
(1)不使用外部EEPROM
利用TUSB3410实现的USB转UART接口可以不使用外部EEPROM,VID/PID描述符使用TI的默认缺省值,TUSB3410固件从主机PC上下载即可实现通讯,但是,存在两个问题:①因为不具备唯一VlD值,系统的USB设备兼容性不好;②当主机检测到两个不同USB设备,具有相同的VID/PID和序列号时,可能会导到USB设备不能正常工作或发生设备连接冲突所以,通常设计中不推荐采用此方法,除非该系统为独立总线工作方式,即不与外界任何USB设备同进与主机通讯。
(2)MSP430微控器器不使用外部晶振
TUSB3410由CLKOUT引脚输出UART波特率或一个固定的3556MHz的频率信号,该频率信号可以作为MCU的外时钟输入,这种稳定的频率信号可作为MCU外设的工作频率,此时MCU无须连接外部晶振。
当系统选用TUSB3410产生的频率作为MCU时钟时,只需修改TUSB3410固件,通过设置MODECNFG配置寄存器的CLKOUTEN位,CLKOUT位使能输出,同时,CLKSLCT位用于选择以UART输出还是固定频率输出。
修改后的固件存放在外部EEPROM或存放于系统的驱动程序包中,当存于系统驱动程序包中时,设备连接时修改后的固件自动从 *** 作系统驱动程序中载入,MCU的OSCFAULT位用于检测是否系统使用外部晶振当TUSB3410输出73728MHz频率作为MCU的UART模块的时钟源时,此时UART传输速率可达921 000波特。
软件设计
MCU固件的主程序流程图如图4所示,MCU上电复位后调用InitSystem()初始化程序,初始化外设、看门狗、通用I/O口等,设置系统时钟为外部8MHz晶振,同时将USARTO设为12C模式与外部EEPROM实时通讯。
MCU初始化时,TUSB3410处于复位状态,MCU通过12C直接检测外部EEPROM的有效地址位和ACK应答位,当接收到有效ACK信号时,则调用EEPROM-Verify()程序校验该EEPROM中的程序是否与MSP430F1612内部Flash存储的EEPROM镜像文件一致若检测到外部EEPROM为空,则调用EEPROM_Write()程序将MSP430F1612内部Flash存储的EEPROM镜像写入EEPROM当EEPROM程序更新后,TUSB3410释放复位信号,读取外部EEPROM值,当连接到USB主机控制器时,TUSB3410会将这些数据提供给USB主机核对,同时将MCU复位引脚设为NMI模式,防止MCU意外复位。
初始化后,MCU通过Timer_B7模块检测SWl-SW4按键状态,当有键按下,捕获/比较模块捕捉到按键的上升沿信号时产生中断,同时唤醒MCLJ。
中断服务程序流程图如图5所示,首先将USARTO设为UART异步串口模式,然后以460 800波特进行通讯,一帧数据通信的字符格式为8位数据位和1个停止位,没有奇偶校验位当系统要求高速率传输时,主机PC需打开虚拟COM口,并MCU配置相匹配,此时MCU传输速率可达到921 600波特。
在单片机开发中,实现软件重启并保留状态值通常有两种方法:
1使用EEPROM或Flash存储芯片保存状态值。在重启之前,将需要保存的当前状态值写入EEPROM或Flash中。在下一次上电启动时,从EEPROM或Flash中读取上一次的状态值,进行相应的初始化,以达到保留状态值的效果。
2使用内部寄存器保存状态值。一般情况下,单片机都具有少量的内部寄存器。在软件重启前,将需要保存的状态值写入内部寄存器中,这样在重启后即可读取内部寄存器的值来进行状态的初始化。
无论是使用EEPROM/Flash还是使用内部寄存器,都需要谨慎地处理状态值的保存和读取。为防止意外出现的重启造成的状态值不稳定,建议在程序设计与编写过程中加入数据校验与恢复功能,提高程序鲁棒性。
有需要程序的吗?刚刚用vivado调通了。其他我都没改,就是书中的module EEPROM(scl, sda); 中,下面这段程序else 后面应为state=2'b11;这样才可以进入读 *** 作。
casex(State)
2'b01:
begin
read_in;
if(ctrl_byte==w7||ctrl_byte==w6||ctrl_byte==w5
||ctrl_byte==w4||ctrl_byte==w3||ctrl_byte==w2
||ctrl_byte==w1||ctrl_byte==w0)
begin
State = 2'b10;
write_to_eeprm; //写 *** 作
end
else
State = 2'b00;
end
关系为:它们都是单片机系统的存储器
区别主要是他们的用途不同:现在的单片机,RAM主要是做运行时数据存储器,FLASH主要是程序存储器,EEPROM主要是用以在程序运行保存一些需要掉电不丢失的数据
详细介绍:
1、RAM-RamdomAccessMemory易挥发性随机存取存储器,高速存取,读写时间相等,且与地址无关,如计算机内存等。
2、ROM-Read Only Memory只读存储器。断电后信息不丢失,如计算机启动用的BIOS芯片。存取速度很低,(较RAM而言)且不能改写。由于不能改写信息,不能升级,现已很少使用。
3、EEPROM(带电可擦写可编程只读存储器)是用户可更改的只读存储器EEPROM
(ROM),其可通过高于普通电压的作用来擦除和重编程(重写)。不像EPROM芯片,EEPROM不需从计算机中取出即可修改。在一个EEPROM中,当计算机在使用的时候可频繁地反复编程,因此EEPROM的寿命是一个很重要的设计考虑参数。EEPROM是一种特殊形式的闪存,其应用通常是个人电脑中的电压来擦写和重编程。
4、Flash存储器又称闪存,它结合了ROM和RAM的长处,不仅具备电子可擦除可编程(EEPROM)的性能,还可以快速读取数据(NVRAM的优势),使数据不会因为断电而丢失。U盘和MP3里用的就是这种存储器。在过去的20年里,嵌入式系统一直使用ROM(EPROM)作为它们的存储设备,然而近年来Flash全面代替了ROM(EPROM)在嵌入式系统中的地位,用作存储Bootloader以及 *** 作系统或者程序代码,或者直接当硬盘使用(U盘)。
一.基本工作原理 基本工作原理
1、存储器构造 、 存储器就是用来存放数据的地方。它是利用电平的高低来存放数据的,也就是说,它存 放的实际上是电平的高、低,而不是我们所习惯认为的 1234 这样的数字,这样,我们的一 个谜团就解开了,计算机也没什么神秘的吗。
图1
图2 让我们看图 1。这是一个存储器的示意图:一个存储器就像一个个的小抽屉,一个小抽 屉里有八个小格子,每个小格子就是用来存放“电荷”的,电荷通过与它相连的电线传进来 或释放掉, 至于电荷在小格子里是怎样存的, 就不用我们 *** 心了, 你可以把电线想象成水管, 小格子里的电荷就像是水,那就好理解了。存储器中的每个小抽屉就是一个放数据的地方, 我们称之为一个“单元” 。 有了这么一个构造,我们就可以开始存放数据了,想要放进一个数据 12,也就是
00001100, 我们只要把第二号和第三号小格子里存满电荷, 而其它小格子里的电荷给放掉就 行了(看图 2) 。可是问题出来了,看图 1,一个存储器有好多单元,线是并联的,在放入电 荷的时候, 会将电荷放入所有的单元中, 而释放电荷的时候, 会把每个单元中的电荷都放掉, 这样的话, 不管存储器有多少个单元, 都只能放同一个数, 这当然不是我们所希望的, 因此, 要在结构上稍作变化,看图 1,在每个单元上有个控制线,我想要把数据放进哪个单元,就 给一个信号这个单元的控制线,这个控制线就把开关打开,这样电荷就可以自由流动了,而 其它单元控制线上没有信号,所以开关不打开,不会受到影响,这样,只要控制不同单元的 控制线,就可以向各单元写入不同的数据了,同样,如果要某个单元中取数据,也只要打开 相应的控制开关就行了。 2、存储器译码 、 那么, 我们怎样来控制各个单元的控制线呢?这个还不简单, 把每个单元的控制线都引 到集成电路的外面不就行了吗?事情可没那么简单,一片 27512 存储器中有 65536 个单元, 把每根线都引出来, 这个集成电路就得有 6 万多个脚?不行, 怎么办?要想法减少线的数量。 我们有一种方法称这为译码,简单介绍一下:一根线可以代表 2 种状态,2 根线可以代表 4 种状态,3 根线可以代表几种,256 种状态又需要几根线代表?8 种,8 根线,所以 65536 种状态我们只需要 16 根线就可以代表了。 3、存储器的选片及总线的概念 、 至此,译码的问题解决了,让我们再来关注另外一个问题。送入每个单元的八根线是用 从什么地方来的呢?它就是从计算机上接过来的, 一般地, 这八根线除了接一个存储器之外, 还要接其它的器件
。这样问题就出来了,这八根线既然不是存储器和计算机之间专用的,如 果总是将某个单元接在这八根线上,就不好了,比如这个存储器单元中的数值是 0FFH 另一 个存储器的单元是 00H,那么这根线到底是处于高电平,还是低电平?岂非要打架看谁历害 了?所以我们要让它们分离。办法当然很简单,当外面的线接到集成电路的引脚进来后,不 直接接到各单元去,中间再加一组开关就行了。平时我们让开关打开着,如果确实是要向这 个存储器中写入数据,或要从存储器中读出数据,再让开关接通就行了。这组开关由三根引 线选择:读控制端、写控制端和片选端。要将数据写入片中,先选中该片, 然后发出写信号, 开关就合上了,并将传过来的数据(电荷)写入片中。如果要读,先选中该片,然后发出读 信号,开关合上,数据就被送出去了。读和写信号同时还接入到另一个存储器,但是由于片 选端不同, 所以虽有读或写信号,但没有片选信号, 所以另一个存储器不会“误会” 而开门, 造成冲突。 那么会不同时选中两片芯片呢?只要是设计好的系统就不会, 因为它是由计算控
制的,而不是我们人来控制的,如果真的出现同时出现选中两片的情况,那就是电路出了故 障了,这不在我们的讨论之列。 从上面的介绍中我们已经看到,用来传递数据的八根线并不是专用的,而是很多器件 大家共用的,所以我们称之为数据总线,总线英文名为 BUS,总即公交车道,谁者可以走。 而十六根地址线也是连在一起的,称之为地址总线。
二.存储器的种类及原理: 存储器的种类及原理: 及原理 1RAM / ROM 存储器 1
ROM 和 RAM 指的都是半导体存储器,ROM 是 Read Only Memory 的缩写,RAM 是 Random Access Memory 的缩写。ROM 在系统停止供电的时候仍然可以保持数据,而 RAM 通常都是在 掉电之后就丢失数据,典型的 RAM 就是计算机的内存。
2 RAM
随机存取存储器(RAM)是计算机存储器中最为人熟知的一种。之所以 RAM 被称为“随机 存储”,是因为您可以直接访问任一个存储单元,只要您知道该单元所在记忆行和记忆列的 地址即可。 RAM 有两大类: 1) 静态 RAM(Static RAM / SRAM),SRAM 速度非常快,是目前读写最快的存储设 备了,但是它也非常昂贵,所以只在要求很苛刻的地方使用,譬如 CPU 的一级缓冲,二级 缓冲。 2) 动态 RAM (Dynamic RAM / DRAM) DRAM 保留数据的时间很短, , 速度也比 SRAM 慢,不过它还是比任何的 ROM 都要快,但从价格上来说 DRAM 相比 SRAM 要便宜很多, 计算机内存就是 DRAM 的。 类似于微处理器, 存储器芯片也是一种由数以百万计的晶体管和电容器
构成的集成电路 (IC)。计算机存储器中最为常见的一种是动态随机存取存储器(DRAM),在 DRAM 中晶体 管和电容器合在一起就构成一个存储单元,代表一个数据位元。电容器保存信息位——0 或 1(有关位的信息,请参见位和字节)。晶体管起到了开关的作用,它能让内存芯片上的控 制线路读取电容上的数据,或改变其状态。 电容器就像一个能够储存电子的小桶。要在存储单元中写入 1,小桶内就充满电子。要 写入 0,小桶就被清空。电容器桶的问题在于它会泄漏。只需大约几毫秒的时间,一个充满 电子的小桶就会漏得一干二净。因此,为了确保动态存储器能正常工作,必须由 CPU 或是由 内存控制器对所有电容不断地进行充电,使它们在电子流失殆尽之前能保持 1 值。为此,内
存控制器会先行读取存储器中的数据, 然后再把数据写回去。 这种刷新 *** 作每秒钟要自动进 行数千次如(图 3 所示)
图 3 动态 RAM 存储单元中的电容器就像是一个漏水的小桶。
它需要定时刷新,否则电子泄漏会使它变为 0 值。
动态 RAM 正是得名于这种刷新 *** 作。 动态 RAM 需要不间断地进行刷新, 否则就会丢失它 所保存的数据。这一刷新动作的缺点就是费时,并且会降低内存速度。
存储单元由硅晶片蚀刻而成,位于由记忆列(位线) 和记忆行(字线) 组成的阵列之中。 位线和字线相交,就形成了存储单元的地址。
图 4 将位元排列在二维栅格中,就构成了内存。 在上图中,红色的存储单元代表 1 值,而白色的存储单元代表 0 值。 在演示动画片中,先选出一个记忆列,然后对记忆行进行充电以将数据写入指定的记忆列中。
DRAM 工作时会向选定的记忆列(CAS)发送电荷,以激活该记忆列上每个位元处的晶体 管。写入数据时,记忆行线路会使电容保持应有状态。读取数据时,由灵敏放大器测定电容 器中的电量水平。如果电量水平大于 50%,就读取 1 值;否则读取 0 值。计数器会跟踪刷新 序列,即记录下哪些行被访问过,以及访问的次序。完成全部工作所需的时间极短,需要以 纳秒(十亿分之一秒)计算。存储器芯片被列为 70 纳秒级的意思是,该芯片读取单个存储 单元并完成再充电总共需要 70 纳秒。 如果没有读写信息的策略作为支持, 存储单元本身是毫无价值的。 所以存储单元拥有一 整套由其他类型的专用电路构成的底层设施。这些电路具有下列功能: 判别记忆行和记忆列的地址(行选址和列选址) 记录刷新序列(计数器) 从存储单元中读取、恢复数据(灵敏放大器) 告知存储单元是否接受电荷(写保护) 内存控制器要执行其他一些任务, 包
括识别存储器的类型、 速度和容量, 以及检错等等。
静态 RAM 使用了截然不同的技术。 静态 RAM 使用某种触发器来储存每一位内存信息 (有 关触发器的详细信息,请查见布尔逻辑的应用) 。存储单元使用的触发器是由引线将 4-6 个 晶体管连接而成, 但无须刷新。 这使得静态 RAM 要比动态 RAM 快得多。 但由于构造比较复杂, 静态 RAM 单元要比动态 RAM 占据更多的芯片空间。 所以单个静态 RAM 芯片的存储量会小一些, 这也使得静态 RAM 的价格要贵得多。静态 RAM 速度快但价格贵,动态 RAM 要便宜一些,但速 度更慢。因此,静态 RAM 常用来组成 CPU 中的高速缓存,而动态 RAM 能组成容量更大的系统 内存空间。
3 ROM
ROM 也分为很多种: 1) 掩膜式 ROM 芯片生产厂家在制造芯片过程中把程序一并做在芯片内部,这就是二次光刻版图形(掩 膜)。存储阵列中的基本存储单元仅由一只 MOS 管构成,或缺省,凡有 MOS 管处表示存储 0, 反之为 1 工厂在生产时,根据客户提供的内容,决定是否布下只 MOS 管 用户在生产好后,
是不能改写的( 难道撬开芯片,加个 MOS 管上去) 由于集成电路生产的特点, 要求一个批次的掩膜 ROM 必须达到一定的数量 (若十个晶圆) 才能生产,否则将极不经济。掩膜 ROM 既可用双极性工艺实现,也可以用 CMOS 工艺实现。 掩膜 ROM 的电路简单,集成度高,大批量生产时价格便宜。 2) 一次性可编程 ROM(PROM= ROM(PROM=Programmable ROM) ) 允许一次编程 存储阵列除了三极管之外,还有熔点较低的连线(熔断丝)串接在每只存储三极管的某 一电极上,例如发射极 编程之前,存储信息全为 0,或全为 1,编程写入时,外加比工作 电压高的编程电压,根据需要使某些存储三极管通电,由于此时电流比正常工作电流大,于 是熔断丝熔断开路,一旦开路之后就无法恢复连通状态,所以只能编程一次。如果把开路的 三极管存储的信息当作 0,反之,存储的信息就为 1 3) 紫外线擦除可编程 ROM(EPROM= 紫外线擦除可编程 ROM(EPROM=Erasable PROM) ) 用紫外线擦除后编程,并可多次擦除多次编程 FAMOS 管与 MOS 管结构相似,它是在 N 型半导体基片上生长出两个高浓度的 P 型区,通 过欧姆接触分别引出漏极 D 和源极 S,在漏源之间的 SiO2 绝缘层中,包围了一多晶硅材料, 与四周无直接电气连接,称之为浮置栅极,在对其编程时,在漏源之间加上编程电压(高于 工作电压)时,会产生雪崩击穿现象,获得能量的电子会穿过 SiO2 注入到多晶硅中,编程 结束后, 在漏源之间相对感应出的正电荷导电沟道将会保持下来, 如果将漏源之间感应出正 电荷导电沟道的 MOS 管表示存
入 0,反之,浮置栅不带负电,即漏源之间无正电荷导电沟道 的 MOS 管表示存入 1 状态 在 EPROM 芯片的上方, 有一圆形石英窗, 从而允许紫外线穿过透明的圆形石英窗而照射 到半导体芯片上,将它放在紫外线光源下一般照射 10 分钟左右,EPROM 中的内容就被抹掉, 即所有浮置栅 MOS 管的漏源处于断开状态,然后,才能对它进行编程输入 出厂未编程前,每个基本存储单元都是信息 1, 编程就是将某些单元写入信息 0 EPROM 是采用浮栅技术生产的可编程存储器,它的存储单元多采用 N 沟道叠栅 MOS 管 (SIMOS) ,其结构及符号如图 1221(a)所示。除控制栅外,还有一个无外引线的栅极,称 为浮栅。当浮栅上无电荷时,给控制栅(接在行选择线上)加上控制电压,MOS 管导通; 而当浮栅上带有负电荷时,则衬底表面感应的是正电荷,使得 MOS 管的开启电压变高,如 图 1213(b)所示,如果给控制栅加上同样的控制电压,MOS 管仍处于截止状态。由此可见, SIMOS 管可以利用浮栅是否积累有负电荷来存储二值数据。
(a) 叠栅 MOS 管的结构及符号图
(b) 叠栅 MOS 管浮栅上积累电子与开启电压的关系
图 6 叠栅 MOS 管
在写入数据前,浮栅是不带电的,要使浮栅带负电荷,必须在 SIMOS 管的漏、栅极 加上足够高的电压(如 25V) ,使漏极及衬底之间的 PN 结反向击穿,产生大量的高能电子。 这些电子穿过很薄的氧化绝缘层堆积在浮栅上, 从而使浮栅带有负电荷。 当移去外加电压后, 浮栅上的电子没有放电回路,能够长期保存。当用紫外线或 X 射线照射时,浮栅上的电子形 成光电流而泄放, 从而恢复写入前的状态。 照射一般需要 15 至 20 分钟。 为了便于照射擦除, 芯片的封装外壳装有透明的石英盖板。EPROM 的擦除为一次全部擦除,数据写入需要通用或 专用的编程器。 ROM( EPROM) 4) 电擦除可编程 ROM(EEPROM = Electrically EPROM) 加电擦除,也可以多次擦除, 可以按字节编程。 在 EPROM 基本存储单元电路的浮置栅 MOS 管 T1 上面再生成一个浮置栅 MOS 管 T2, T2 将 浮置栅引出一个电极,使该电极接某一电压 VG2,若 VG2 为正电压,T1 浮置栅极与漏极之间 产生一个隧道效应,使电子注入 T1 浮置栅极,于是 T1 的漏源接通,便实现了对该位的写入 编程。 用加电方法,进行在线(无需拔下,直接在电路中)擦写(擦除和编程一次完成)有字
节擦写、 块擦写和整片擦写方法, 按字节为单位进行擦除和写入, 擦除和写入是同一种 *** 作, 即都是写入,只不过擦除是固定写“1”而已,在擦除时,输入的数据是 TTL 高电平。 EEPROM 在进行字节改写之前自动对所要写入的字节单元进行
擦除, 只需要像写普通 CPU RAM 一样写其中某一字节, 但一定要等到 5ms 之后, CPU 才能接着对 EEPROM 进行下一次写入 *** 作,因而,以字节为单元写入是常用的一种简便方式。 写入 *** 作时,首先把待写入数据写入到页缓冲器中,然后,在内部定时电路的控制下把 页缓冲器中的所有数据写入到 EEPROM 中所指定的存储单元,显然,相对字节写入方式,第 二种方式的效率高,写入速度快。 EEPROM 也是采用浮栅技术生产的可编程存储器,构成存储单元的 MOS 管的结构如图 1222 所示。它与叠栅 MOS 管的不同之处在于浮栅延长区与漏区之间的交叠处有一个厚度 约为 80 埃的薄绝缘层,当漏极接地,控制栅加上足够高的电压时,交叠区将产生一个很强 的电场, 在强电场的作用下, 电子通过绝缘层到达浮栅, 使浮栅带负电荷。 这一现象称为“隧 道效应”,因此,该 MOS 管也称为隧道 MOS 管。相反,当控制栅接地漏极加一正电压,则产 生与上述相反的过程,即浮栅放电。与 SIMOS 管相比,隧道 MOS 管也是利用浮栅是否积累 有负电荷来存储二值数据的, 不同的是隧道 MOS 管是利用电擦除的, 并且擦除的速度要快得 多。 EEPROM 电擦除的过程就是改写过程,它是以字为单位进行的。EEPROM 具有 ROM 的非易 失性, 又具备类似 RAM 的功能, 可以随时改写 (可重复擦写 1 万次以上) 目前, 。 大多数 EEPROM 芯片内部都备有升压电路。因此,只需提供单电源供电,便可进行读、擦除/写 *** 作,为数 字系统的设计和在线调试提供了极大的方便。
图 7 隧道 MOS 管剖面结构示意图
图 8 快闪存储器存储单元 MOS 管剖面结构示意图
5) Flash 闪存 快速擦写,但只能按块编程 快闪存储器存储单元的 MOS 管结构与 SIMOS 管类似, 如图 1223 所示。 但有两点不同, 一是快闪存储器存储单元 MOS 管的源极 N+区大于漏极 N+区, SIMOS 管的源极 N+区和漏极 而 N+区是对称的;二是浮栅到 P 型衬底间的氧化绝缘层比 SIMOS 管的更薄。这样,可以通过 在源极上加一正电压,使浮栅放电,从而擦除写入的数据。由于快闪存储器中存储单元 MOS 管的源极是连接在一起的,所以不能象 E2PROM 那样按字擦除,而是类似 EPROM 那样整片擦 除或分块擦除。整片擦除只需要几秒钟,不像 EPROM 那样需要照射 15 到 20 分钟。快闪存储 器中数据的擦除和写入是分开进行的, 数据写入方式与 EPROM 相同, 需输入一个较高的电压, 因此要为芯片提供两组电源。一个字的写入时间约为 200 微秒,一般可以擦除/写入 100 次 以上。 新型的 FLASH,例如 320C3B 等,在常规存储区域后面还有 128Bit 的特殊加密,其中前 64Bit(8 字节)是唯一
器件码(64BitUniqueDeviceIdentifier),每一片 Flash 在出厂时 已经带有,并且同一种 Flash 型号不会有相同的编码,哪怕这个字库是全新空白的字库。后 来 64Bit 为用户可编程 OTP 单元 (64BitUserProgrammableOTPCells) ,可以由用户自用设定, 单只能写入,不能擦除。
flash是用来存储代码的,在运行过程中不能改;eeprom是用来保存用户数据,运行过程中可以改变,比如一个时钟的闹铃时间初始化设定为12:00,后来在运行中改为6:00,这是保存在eeprom里,不怕掉电,就算重新上电也不需要重新调整到6:00
两者都是非易失性存储器
flash的全称是flash
eeprom,但跟常规eeprom的 *** 作方法不同
flash和eeprom的最大区别是flash按扇区 *** 作,eeprom则按字节 *** 作,二者寻址方法不同,存储单元的结构也不同,flash的电路结构较简单,同样容量占芯片面积较小,成本自然比eeprom低,因而适合用作程序存储器,eeprom则更多的用作非易失的数据存储器。当然用flash做数据存储器也行,但 *** 作比eeprom麻烦的多,所以更“人性化”的mcu设计会集成flash和eeprom两种非易失性存储器,而廉价型设计往往只有flash,早期可电擦写型mcu则都是eeprm结构,现在已基本上停产了。
一般来说eeprom中存放开机是用到的参数,不可丢失的变量等,而flash中会存放程序,记录文件等。
以上就是关于我现在有块板子上有USB接口,现在想把数据通过这个USB传给MSP430单片机的串口0,请问该怎么做啊全部的内容,包括:我现在有块板子上有USB接口,现在想把数据通过这个USB传给MSP430单片机的串口0,请问该怎么做啊、单片软件重启保留状态值、各位高手,我在看夏宇闻的《Verilog 数字系统设计教程》第2版,苦心学习228页第16章关于eeprom的例子,等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)