![](http://img4.cpooo.com/files/201905/30/p/95/1207632_1559196304.jpg)
CI861K01 CI858K01
ABBDCSAC800M模块CI861K01CI858K01ABBDCSAC800M模块CI861K01CI858K01ABBDCSAC800M模块CI861K01CI858K01-------------------------------------------------------------------------------------------------------------------软件驱动的主要工作是配置DMA模块以及FLASH控制模块,当传输完成,检测到中断后,软件查询状态寄存器,其中的状态位来自FLASH。当一次操作完成后,控制器自动向FLASH发出查询状态的命令070,读出的状态字保存在控制器的状态寄存器中。4NANDFLASH系统启动的传统模式目前支持从NANDFLASH启动的SoC芯片中,一般都内嵌有片卜存储器。各个处理器厂商对这块片上存储器定义的容量大小有所不同,但是启动模式都是比较一致的。NANDFLASH按页顺序读取的方式,意味着对当前的存储地址访问后就无法马上再次访问,需在当前页访问完成后,重新对此页访问时,才可对先前的地址单元再次访问,这就导致了一些程序语句无法执行,譬如跳转、循环等语句的使用。因此NANDFLASH仅作为启动代码的存储区,而真正执行的存储器区域是内嵌的片上存储器或者片外的SDRAM。以上文中描述的控制器为例,按照这种启动模式,程序搬运以及执行的过程如下:系统上电前,外部硬线NANDBOOT开关选择从NANDFLASH启动。芯片设计时,默认DMA占有系统总线,DMA按照配置寄存器的默认值工作,其源地址指向NANDFLASH,目标地址指向片上SRAM,NANDFLASH控制器在NANDBOOT选中的情况下,默认向NANDFLASH的首页发出读命令。即上电后,DMA控制器以及NANDFLASH控制器默认的把FLASH存储器中的***页搬到了片上SRAM中。一直到DMA的工作完成前,ARM核无法占用总线。此时零地址映射在片上SRAM,DMA完成搬运后,ARM开始执行程序。此段代码完成的工作包括对SDRAM控制器的初始化,从NANDFLASH搬运核心代码至SDRAM,配置地址重映射寄存器至零地址处,***后将PC指向零地址的SDRAM。在SDRAM执行的代码开始真正启动系统。5NANDFLASH系统启动的新方法一般情况下,片上存储器在作为启动代码转移阶石的同时,往往在启动后也有其特殊的作用。可以作为特殊的程序区,譬如在进行MP3***过程中,核心***函数作为频繁调用的程序,可以安排在片上SRAM中,以提高读取速度,提升系统性能。在SoC芯片开发过程中,在整体架构以及模块功能的变化之后,这块内嵌的SRAM失去了原来的作用,而仅作为NANDFLASH启动时的代码跳板,对于整个芯片而言,付出的代价比较大。于是提出了在没有片上存储器的架构下,从NANDFLASH启动的一种新模式。在上述一般模式启动过程中,片上SRAM所起到的作用,就是执行NANDFLASH中***页的代码,将真正的启动代码引入到SDRAM,***后将PC指针指向SDRAM。在失去片上SRAM的支持后,可以在控制器的FIFO中去执行此段代码,这需要在硬件以及软件代码中作出适当的改变。(1)首先需要改变的是地址映射的机制,系统上电后,ARM即从零地址开始执行指令,零地址映射到NANDFLASH的FIFO入口地址,地址的译码过程由AMBA总线模块完成。在外部硬线NANDBOOT拉高的条件下,AMBA从设备地址译码模块在启动过程中,将零地址的设备选择权给到缓冲FIFO。在***页的指令执行完毕后,PC指针也指向SDRAM。(2)其次是NANDFLASH控制器在启动过程中,对数据的读取方式。鉴于NANDFLASH大批量数据读写的特性,往往采用DMA方式对数据进行操作。启动过程中,由ARMcore直接向FIFO读取数据,在FIFO读空的情况下,将从没备READY信号拉低,等待NAND中的数据读出。并且在此读取过程中,DMA的请求被屏蔽。(3)NANDFLASH型号类型众多,从每页容量大小、数据宽度、地址级数以及各型号芯片不同的时序参数,决定了一个控制器接口的兼容性要求相当的高。为了兼容从不同的NANDFLASH启动,设置了4根硬线作为选择。NANDBOOT选择是否从NANDFLASH启动;PAGESIZE选择每页大小,支持512B/page,2kB/page;IOWIDE选择数据端口的宽度,支持8位、16位;AD-DRE***YCLE选择发送地址级数,支持3级、4级、5级地址。时序参数的配置值可以采用默认的宽松值,在读取首页信息之后,将配置值根据当前的时钟频率以及芯片类型,选择舍适的时序值以达到***佳的性能。(4)存储器首页的代码是在缓冲FIFO中执行的,FIFO的入口地址是一个高24位的选通地址,因此当系统启动时,零地址开始增加,对FIFO中渎出的指令而言,低8位地址的变化是无关的,FIFO始终被选通。指令的输出是默认的顺序输出。这就要求首页的代码中不可以出现循环、跳转等语句,并且要求在128条指令内完成需要的操作。6启动代码和流程的分析上述的汇编程序即是存放在NANDFLASH首页的启动代码,启动的流程如下:(1)配置DMA控制器的4个寄存器,通道使能后,等待FLASH发出的搬运请求;(2)配置NANDFLASH控制器的3个寄存器,选择适合的地址、时序参数与所用的FLASH芯片吻合;(3)分别在r8~r11中放入程序需要的备用值;(4)将需要在SDRAM中运行的4条指令搬入SDRAM030000000处;(5)执行Nop指令,Nop指令用于填充一页NANDFLASH中的剩余空间;(6)执行在页末的指令,将PC指针指向SDRAM的030000000处;(7)执行SDRAM中的指令,首先启动NANDFLASH的数据传输,将程序搬往SDRAM的030001000处。其次执行一个循环语句,等待***页的程序搬完,之后将PC指针指向030001000处,启动程序从030001000处正式开始执行。英维思增强型智能通讯模件4351BV10.5.2数字输出模件3664数字输出模件3604E数字输出模件3625脉冲输入模件3511数字输入模件3503E模拟输出模件3805E模拟输入模块3721远程RXM模块4211主RXM模块4210电源模块8312230VACTRICON系统模块3511TRICON系统通讯卡TCM4351BTRICON系统卡件DO3625TRICON系统卡件DI3503ETRICON系统卡件MP3008TRICON系统卡件AO3805ETRICON系统卡件AI3721巴赫曼PLC-***处理器模块MPC240128MBPLC-数字I/0模块DIO216扩展模块***11接口模块EM203输入输出模块DIO280接口模块RS204模拟量输入模块PTAI216电源模块NT255数字量输入/输出模块DIO16-C背板模块BS214数字输入模块DI232数字输出模块DO232Fastbus模块FS211/N主控制器MPC270英维思SIS卡件AO连接卡9853-610SIS卡件AI连接卡9771-210SIS卡件DO连接卡9662-610SIS卡件DI连接卡9563-810SIS卡件电源卡8312SIS卡件_电源卡,220VAC型号8312SIS卡件tricon8312SIS卡件DI卡件3503ESIS卡件_DO卡件,型号3664RevE6.0SIS卡件AI卡件3721SIS卡件3721SIS卡件3625SIS系统卡件3625SIS系统卡件TRICONEX3625SIS卡件TRICONEX3625DO数字输出卡3625SIS系统DO卡件3625产品SIS系统卡件3721SIS系统AI卡3721SIS卡件TRICONEX3721AI3721卡件SIS卡件DO卡件3664I/O卡件DI3503ESIS卡件数字量输入DI卡3503ESIS系统卡件3503EDI卡件3503ETRICONSIS系统卡件8312SIS卡件电源卡件8312SIS系统卡件TRICONEX8312电源模件8312SIS电源卡件8312SIS系统卡9563-810SIS系统卡件TRICONEX9563-810数字量输入9563-810SIS卡件_DI连接卡,型号9563-810SIS系统卡9662-610SIS卡件DO接线底板9662-810SIS卡件9662-610SIS卡件_AI连接卡,型号9771-210SIS系统卡9771-210SIS系统卡9853-610系统SIS数字量输出9853-610数字量输出9853-610SIS卡件9853-610SIS系统AI3721SIS系统CPUMP3008三重化处理器3008I/O卡件AI3721I/O卡件DO3625I/O卡件PI3511通讯卡件TCM4351BITCC控制器triconex4210AO模件3805E|tricon|INVENSYSAO模件3805EtriconITCC控制器triconex4211ITCC控制器triconexMP3008ITCC系统电源模块TRICONEX8312控制系统配件SIS扩展机架8111控制系统配件SIS模拟量输入3721控制系统配件ESD系统3805E控制系统配件TRICON控制系统3604E控制系统配件TRICON控制系统3664控制系统配件TRICON控制系统4351B控制系统配件TS3000ETP9761-210控制系统配件ESD系统SIS数字量输入9563-810控制系统配件ESD系统SIS数字量输出9853-610控制系统配件ESD系统数字量输出9662-110TRICONESD系统扩展总线电缆9000控制系统配件振动监测卡3500/42-01-00HONEYWELL51401635-150abbBRC100abbBRC300abbBR***00abbHSS03)