STM32F2新增外设2STM32F2新增功能和外设高速USBOTG模块视频接口加解密功能加密处理器哈希处理器随机数产生器3STM32F2USBOTG高速模块主机模式下支持高速/全速/低速从机模式下支持高速/全速内嵌专用DMA,支持突发传输专用4K字节FIFO支持三种PHY接口片上内嵌全速PHY(和全速OTG模块一样)以I2C接口连接外部全速PHY以ULPI接口连接外部高速PHY4STM32F2USBOTG高速模块–主机模式和全速主机模式一样的性能多达12个通道高速协议特有的特性PING协议主机发起PING协议以周期性检查从机是否准备好SPLIT协议主机通过高速HUB连接全速/低速设备时,无须等待设备应答;可以先作其他通信,过段时间再来检查是否受到外设的应答多传输协议125uS的微帧时间内对同步传输使用DATA0、DATA1、DATA2和MDATA等多种数据PID5STM32F2USBOTG高速模块–从机模式和全速从机性能一样新增以下扩展特性多达5个IN端点多达5个OUT端点EP1_IN和EP1_OUT有各自的中断向量入口NYET高速模式下从机收到数据包,如果在接收FIFO中没有找到足够的空余空间,返回NYET握手信号6STM32F2照相机接口主要性能8/10/12/14位并行接口连续和快照模式,裁减功能支持的数据格式有:8/10/12/14逐行扫描视频信号YCbCr4:2:2逐行扫描视频信号RGB565逐行扫描视频信号压缩数据支持JPEG格式在48MHz时钟和8位宽度数据接口配置下可接收15fps的SXGA分辨率每像素2字节的未压缩数据流30fps的VAG分辨率每像素2字节的未压缩数据流7STM32F2照相机接口(2)外部引脚和框图数据线DCMI_D[0:13]像素时钟线(极性可编程配置),最快48MHz行同步信号DCMI_HSYNC场同步信号DCMI_VSYNC8STM32F2加密处理器原理发送方要发送的明文加密用的对称密钥接收方解密用的对称密钥发送方明文密文加密对称性密钥接收方明文密文解密对称性密钥9STM32F2加密处理器特性支持加解密算法DES、TDES和AES加解密工作模式电子密码本(Electroniccodebook)模式密码段链接(Cipherblockchaining)模式计数(Counter)模式加解密处理器是AHB2上的外设最高工作频率120MHz支持DMA传输输出/输出端各有8个字的FIFO1010标志STM32F2加解密处理器框图密钥宽度:128-,192-and256-位密钥宽度:64-位密钥宽度:64-,128-and192-位TDESAESDES加解密处理器输入FIFO输出FIFO数据交换数据交换ECBCBCCTR产生输入数据DMA请求产生输出数据DMA请求BUSYOFFUOFNEIFNFIFEMECBCBCECBCBCOUTRISINRISCRYPTOGlobalinterrupt(NVIC)OUTIMINIMOUTMISINMIS1111STM32F2加解密算法特性比较AESDES/TDES共同特性密钥宽度128/192/256位64位(8位交验)192/128/64位(14/16/8位校验)输入/输出端内嵌各自FIFO(8*32位)支持数据流自动管理–DMA内嵌数据交换逻辑以支持1/8/16/32位数据数据块大小128bits64bits处理单块数据的时间14/16/18个HCLK周期16个HCLK周期48个HCLK周期支持的算法ECB/CBC/CTRECB/CBC/CTR加密类型块加密块加密算法结构迭代-组合网络Feistel网络12加解密算法各自的应用AES加解密算法安全网络路由无线通信加密后的数据保存,包括安全智能卡DES/TDES加解密算法安全数据/文件传输电子资金转帐门控:防止用户的密码和个人信息被非法访问13STM32F2随机数产生器主要特性基于连续模拟噪声的随机数产生器提供32位的随机数工作于PLL48CLK时钟下两个连续随机数之间隔为40个PLL48CLK周期为降低功耗可以关闭它1414STM32F2随机数产生器框图RNGPLL48CLK标致中断使能位RNG中断矢量IMDRDYLFSR(线形反馈移位寄存器)模拟种子32位随机数寄存器时钟检查错误监测CEISSEISSECSCECS错误管理15STM32F2哈希处理器主要特性适用于数据完整性和有效性检查AHB2上的外设,最高工作频率120MHzSHA-1和MD5算法的快速计算SHA-1:66个HCLK周期;MD5:50个HCLK周期32位的输入数据,支持32位/16位/8位/1位的比特流输入,要求小端对齐方式输入数据自动交换以遵循SHA1计算的大端输入要求对输入比特流自动填充到512位以做哈希计算1616标志STM32F2哈希处理器框图MD5SHA-1HASH哈希处理器输入FIFO数据交换DMArequestBUSYDMASDCISDINISHASHGlobalinterrupt(NVIC)DCIMDINIMHMAC哈希值H0..H45x32位16x32位17哈希的应用校验文件或信息的完整性安全哈希算法一个重用应用就是校验信息的完整性,确定其是否被恶意修改或破坏过。比如可以通过比较传输之前和之后数据的哈希值来校验检查信息哈希值的有效真实性,从而确定信息本身的有效真实性。通常密码都不是以明文形式存储,而是以哈希值的形式。要确实用户是否合法,只需把用户输入的密码做哈希运算,再把所得哈希值和存储的密码哈希值比较即可。18STM32F2增强功能和外设外设性能进一步增强更快的模数转换速度更低的ADC/DAC工作电压带日历功能的实时时钟4K字节的电池备份SRAM32位定时器更快的USART和SPI通信速度JTAG引脚熔断保护更多的GPIO更快更省电更方便更安全1串行外设接口SPI2培训内容–SPI模块SPI协议简介STM32F2的SPI模块GPIO占用和配置片选信号的管理时钟极性和相位数据格式(F2新增对TI格式的支持)主/从设备模式的收/发配置不同通信模式下的操作序列和状态时序全双工通信单工通信CRC特性DMA特性状态、错误标志以及中断管理3培训内容–SPI模块SPI协议简介STM32F2的SPI模块GPIO占用和配置片选信号的管理时钟极性和相位数据格式(F2新增对TI格式的支持)主/从设备模式的收/发配置不同通信模式下的操作序列和状态时序全双工通信单工通信CRC特性DMA特性状态、错误标志以及中断管理4SPI总线简介SPI(SerialPeripheralInterface)由Motolora提出的一种三线同步接口,可实现全双工通信。数据传送以字节为单位并采用高位在前的格式(MSB)硬件接口SCK:起同步作用的串行移位时钟SDO:串行数据输出(MOSI)SDI:串行数据输入(MISO)CS:使能从设备的片选信号MSBMSBLSBLSBSCKMOSIMISOCS(1)这种情况下,双方的NSS都配置成输入5STM32F2的SPI模块引脚及重映射SPI1SCKPA.5PB.3/JTDOMOSIPA.7/PB.6MISOPA.6PB.4/NJTRSTNSSPA.4PA.15/JTDISPI2SCKPB.10/PB.13/PI.1MOSIPC.3/PB.15/PI.3MISOPC.2/PB.14/PI.2NSSPB.12/PI.0/PB.9SPI3SCKPC.10PB.3/JTDOMOSIPC.12/PB.5MISOPC.11PB.4/NJTRSTNSSPA.4PA.15/JTDISPI1和SPI3上某些引脚和JTAG接口的功能引脚复用,发生冲突:把冲突的SPI引脚重映射到其它GPIO上关闭JTAG调试接口,改用SWD在开发过程中进行调试烧写调试成功后的应用,关闭JTAG/SWD接口6主从设备引脚GPIO配置主从设备都软件管理片选信号时,可以方便动态地切换主/从关系引脚配置列表7从设备片选引脚的用法(软件控制)软件片选管理片选信号由寄存器控制,对应NSS引脚可作它用无需配置NSS引脚的GPIO一旦配置好寄存器,该从设备立马被有效片选寄存器标志SSM@CR1=1SSI@CR1=0库函数使用SPI_InitStruct.SPI_NSS=SPI_NSS_SoftSPI_InitStruct.SPI_Mode=SPI_Mode_Slave从设备SCKSOSINSS8从设备片选引脚的用法(硬件控制)硬件控制片选信号由引脚外部电平控制NSS引脚GPIO配置为浮空/下拉输入NSS引脚可固定接到外部低电平,片选立刻生效NSS引脚可由主设备来控制,何时片选生效取决主设备寄存器标志SSM@CR1=0SSI@CR1无意义库函数使用SPI_InitStruct.SPI_NSS=SPI_NSS_HardSPI_InitStruct.SPI_Mode=SPI_Mode_Slave从设备SCKSOSINSS配置成浮空输入,由主设备控制何时拉低电平从设备SCKSOSINSS配置成下拉输入,引脚连接固定的低电平9主设备片选引脚的用法(软件控制)软件片选管理片选信号由寄存器控制,对应NSS引脚可作它用无需配置NSS引脚的GPIO一旦配置好寄存器,该设备立马主有效寄存器标志SSM@CR1=1SSI@CR1=1MSTR@CR1=1库函数使用SPI_InitStruct.SPI_NSS=SPI_NSS_SoftSPI_InitStruct.SPI_Mode=SPI_Mode_Master此时NSS引脚可以配置成普通GPIO去控制从设备(如果从设备配置成硬件管理片选),那么从设备的片选信号由主控制主设备SCKMOMINSS10主设备片选引脚的用法(硬件控制.方式1)硬件控制片选信号由引脚外部电平控制NSS引脚GPIO配置为浮空/上拉输入NSS引脚固定接到外部高电平,立刻主有效NSS引脚可由第三方来控制,何时片选生效取决第三方寄存器标志SSM@CR1=0SSI@CR1=无意义MSTR@CR1=1库函数使用SPI_InitStruct.SPI_NSS=SPI_NSS_HardSPI_InitStruct.SPI_Mode=SPI_Mode_Master主设备SCKMOMINSSVDD配置成上拉输入,引脚连接固定的高电平主设备SCKMOMINSS配置成浮空输入,由第三方控制何时拉高电平注意:拉高之前不能置位MSTR,否则出错MODF11主设备片选引脚的用法(硬件控制.方式2)硬件控制片选该环境中所有其它配置成硬件管理片选的从设备常用于广播应用NSS引脚GPIO配置为推拉复用不适用于多主环境若已有主设备在通信,NSS不能被拉低,并将产生HardFault寄存器标志SSM@CR1=0SSI@CR1=无意义MSTR@CR1=1SSOE@CR2=1库函数使用SPI_InitStruct.SPI_NSS=SPI_NSS_HardSPI_InitStruct.SPI_Mode=SPI_Mode_MasterSPI_SSOutputCmd(SPIx,ENABLE)如上配置完成后,一旦使能SPI,NSS拉低SPI_Cmd(SPIx,ENABLE)12主设备片选引脚硬件控制.方式2示意图Slave1SCKMISOMOSINSSMasterSCKMISOMOSINSSSlave2SCKMISOMOSINSSSlave3SCKMISOMOSINSS开启SS输出性能主设备配置1:主设备模式片选硬件管理NSS配置成可编程推挽输出使能NSS输出主设备配置2:主设备模式片选软件管理NSS配置成GPIO的输出GPIO控制输出