61117e_cn.book

Size: px
Start display at page:

Download "61117e_cn.book"

Transcription

1 31 第 31 章 DMA 控制器 DMA 控制器 目录 本章包括下列主题 : 31.1 简介 状态和控制寄存器 工作模式 中断 节能和调试模式下的操作 各种复位的影响 相关应用笔记 版本历史 Microchip Technology Inc. DS61117E_CN 第 31-1 页

2 PIC32MX 系列参考手册 31.1 简介 直接存储器访问 (Direct Memory Access, DMA) 控制器是总线主模块, 用于无需 CPU 干预的情况下在不同外设之间传输数据 DMA 传输的源和目标可以是 PIC32MX 中包含的任何存储器映射的模块 例如, 存储器本身, 或外设总线 (Peripheral Bus,PBUS) 设备之一 : 如 SPI UART 和 I 2 C 等 下面列出了 DMA 模块的部分主要特性 : 根据不同的器件型号, 最多提供 8 个相同的通道, 每个通道都具有 : - 自动递增源和目标的地址寄存器 - 源指针和目标指针 根据不同的器件型号, 最多支持 64 KB 的数据传输 自动字长检测, 具有以下特性 : - 传输粒度, 细到字节级别 - 无需在源和目标处对字节进行字对齐 固定优先级通道仲裁 灵活的 DMA 通道工作模式, 包括 : - 手动 ( 软件 ) 或自动 ( 中断 ) DMA 请求 - 单数据块或自动重复数据块传输模式 - 通道至通道链 灵活的 DMA 请求, 具有以下特性 : - 可从任何外设中断源选择 DMA 请求 - 每个通道可以选择任何中断作为其 DMA 请求源 - 可从任何外设中断源选择 DMA 传输中止 - 数据模式匹配时, 自动传输终止 多个 DMA 通道状态中断, 提供 : - DMA 通道数据块传输完成 - 源空或半空 - 目标满或半满 - 由于外部事件导致 DMA 传输中止 - 产生无效 DMA 地址 DMA 调试支持以下功能 : - DMA 通道最近访问的地址 - 最近传输数据的 DMA 通道 CRC 发生模块, 具有以下特性 : - CRC 模块可分配给任何可用通道 - 在某些器件型号上, 可以对从源读取的数据重新排序 - CRC 模块具有很强的可配置能力 DMA 控制器还提供了以下特性 : 未对齐传输 源和目标大小不同 存储器至存储器传输 存储器至外设传输 通道自动使能 事件启动 / 停止 模式匹配检测 通道链 CRC 计算 DS61117E_CN 第 31-2 页 2010 Microchip Technology Inc.

3 DMA 工作原理 第 31 章 DMA 控制器 DMA 通道可以在无需 CPU 干预的情况下将数据从源传输到目标 源和目标起始地址分别定义源和目标的起始地址 源和目标的大小均可独立配置, 并且传输的字节数与源和目标大小无关 传输通过软件或通过中断请求启动 用户可以选择器件上的任意中断来启动 DMA 传输 在传输启动时,DMA 控制器将执行单元传输, 并且通道保持使能, 直到数据块传输完成为止 当通道被禁止时, 将禁止进一步的传输, 直到通道重新使能为止 DMA 通道使用独立的指针来跟踪源和目标的当前字单元 在源 / 目标指针处于源 / 目标大小一半位置时, 或者在源 / 目标计数器达到源 / 目标结束位置时, 可以产生中断 DMA 传输可以通过软件 通过模式匹配或通过中断事件中止 在检测到地址错误时, 传输也会停止 31 DMA 控制器 图 31-1: 典型的 DMA 源 / 目标传输图 [ 源器件 / 存储器 ] [ 目标器件 / 存储器 ] 1/2/3/4 字节 ( 访问大小 ) 1/2/3/4 字节 ( 访问大小 ) 启动传输 IRQ DMA 停止传输 IRQ 软件启动传输 软件中止传输 2010 Microchip Technology Inc. DS61117E_CN 第 31-3 页

4 PIC32MX 系列参考手册 图 31-2: DMA 模块框图 INT 控制器 系统 IRQ 外设总线地址译码器通道 0 控制 I 0 SEL 通道 1 控制 I 1 Y 总线接口 器件总线 + 总线仲裁 I 2 全局控制 (DMACON) 通道 n 控制 I n SEL 通道优先级仲裁 图 31-3: CRC 实现详细信息 CRC 种子写入 CRC 数据读取 数据输入 Q SET D Q SET D Q SET D Q SET D Q SET D Q CLR Q CLR Q CLR Q CLR Q CLR < < < < < 31 级 30 级 29 级 1 级 0 级 Clk 级间反馈使能 级间反馈使能 级间反馈使能 注 : 根据不同的器件类型, 最多提供 32 级 (0 至 31) 详情请参见具体器件数据手册 DS61117E_CN 第 31-4 页 2010 Microchip Technology Inc.

5 31.2 状态和控制寄存器 第 31 章 DMA 控制器 31 注 : 不同的 PIC32MX 器件型号可能具有一个或多个 DMA 通道 在控制 / 状态位和寄存器的名称中使用的 x 表示特定的通道 更多详细信息, 请参见具体器件数据手册 DMA 模块包含以下特殊功能寄存器 (Special Function Register, SFR): DMACON:DMA 控制器的控制寄存器 DMASTAT:DMA 模块的状态寄存器 DMAADDR:DMA 地址寄存器 DCRCCON:DMA CRC 控制寄存器 DCRCDATA:DMA CRC 数据寄存器 CRC 发生器的初始值 DCRCXOR:DMA CRC 异或 (XOR) 使能寄存器 提供用于 CRC 发生器计算的多项式的说明 DCHxCON:DMA 通道 x 控制寄存器 DCHxECON:DMA 通道 x 事件控制寄存器 DCHxINT:DMA 通道 x 中断控制寄存器 DCHxSSA:DMA 通道 x 源起始地址寄存器 DCHxDSA:DMA 通道 x 目标起始地址寄存器 DCHxSSIZ:DMA 通道 x 源大小寄存器 DCHxDSIZ:DMA 通道 x 目标大小寄存器 DCHxSPTR:DMA 通道 x 源指针寄存器 DCHxDPTR:DMA 通道 x 目标指针寄存器 DCHxCSIZ:DMA 通道 x 单元大小寄存器 DCHxCPTR:DMA 通道 x 单元指针寄存器 DCHxDAT:DMA 通道 x 模式数据寄存器表 31-1 简要汇总了与 DMA 模块相关的寄存器 该汇总表之后列出了相应的寄存器, 并且每个寄存器均附有详细的说明 DMA 控制器 2010 Microchip Technology Inc. DS61117E_CN 第 31-5 页

6 PIC32MX 系列参考手册 表 31-1: DMA 寄存器汇总 地址偏移名称位范围 Bit 31/23/15/7 Bit 30/22/14/6 Bit 29/21/13/5 Bit 28/20/12/4 Bit 27/19/11/3 Bit 26/18/10/2 Bit 25/17/9/1 Bit 24/16/8/0 0x00 DMACON (1,2,3) 31:24 23:16 15:8 ON FRZ SIDL (4) SUSPEND BUSY (4) 7:0 0x10 DMASTAT 31:24 23:16 15:8 7:0 RDWR DMACH<2:0> (5) 0x20 DMAADDR 31:24 DMAADDR<31:24> 23:16 DMAADDR<23:16> 15:8 DMAADDR<15:8> 7:0 DMAADDR<7:0> 0x30 DCRCCON (1,2,3) 31:24 BYTO1 (4) BYTO0 (4) WBO (4) BITO (4) 23:16 15:8 PLEN<4:0> (5) 7:0 CRCEN CRCAPP CRCTYP (4) CRCCH<2:0> (5) 0x40 DCRCDATA (1,2,3) 31:24 DCRCDATA<31:24> (5) 23:16 DCRCDATA<23:16> (5) 15:8 DCRCDATA<15:8> 7:0 DCRCDATA<7:0> 0x50 DCRCXOR (1,2,3) 31:24 DCRCXOR<31:24> (5) 23:16 DCRCXOR<23:16> (5) 15:8 DCRCXOR<15:8> 7:0 DCRCXOR<7:0> 0x60 DCHxCON (1,2,3) 31:24 23:16 15:8 CHBUSY (4) CHCHNS 7:0 CHEN CHAED CHCHN CHAEN CHEDET CHPRI<1:0> 0x70 DCHxECON (1,2,3) 31:24 23:16 CHAIRQ<7:0> 15:8 CHSIRQ<7:0> 7:0 CFORCE CABORT PATEN SIRQEN AIRQEN 0x80 DCHxINT (1,2,3) 31:24 23:16 CHSDIE CHSHIE CHDDIE CHDHIE CHBCIE CHCCIE CHTAIE CHERIE 15:8 7:0 CHSDIF CHSHIF CHDDIF CHDHIF CHBCIF CHCCIF CHTAIF CHERIF 0x90 DCHxSSA (1,2,3) 31:24 CHSSA<31:24> 23:16 CHSSA<23:16> 15:8 CHSSA<15:8> 7:0 CHSSA<7:0> 图注 : = 未实现, 读为 0 地址偏移值以十六进制显示 注 1: 该寄存器具有关联的清零寄存器, 位于 0x4 字节偏移处 这些清零寄存器的命名方式是在关联寄存器的名称末尾附加 CLR ( 例如, DMACONCLR) 向清零寄存器的任意位写入 1 时, 会将关联寄存器中的有效位清零 对清零寄存器的读操作将被忽略 2: 该寄存器具有关联的置 1 寄存器, 位于 0x8 字节偏移处 这些置 1 寄存器的命名方式是在关联寄存器的名称末尾附加 SET ( 例如, DMACONSET) 向置 1 寄存器的任意位写入 1 时, 会将关联寄存器中的有效位置 1 对置 1 寄存器的读操作将被忽略 3: 该寄存器具有关联的取反寄存器, 位于 0xC 字节偏移处 这些取反寄存器的命名方式是在关联寄存器的名称末尾附加 INV( 例如, DMACONINV) 向取反寄存器的任意位写入 1 时, 会将关联寄存器中的有效位取反 对取反寄存器的读操作将被忽略 4: 该位并非在所有器件上都可用 详情请参见具体器件数据手册 5: 根据不同的器件类型, 并非所有位都可用 详情请参见具体器件数据手册 DS61117E_CN 第 31-6 页 2010 Microchip Technology Inc.

7 第 31 章 DMA 控制器 31 表 31-1: DMA 寄存器汇总 ( 续 ) 地址偏移名称位范围 Bit 31/23/15/7 Bit 30/22/14/6 Bit 29/21/13/5 Bit 28/20/12/4 Bit 27/19/11/3 0xA0 DCHxDSA 31:24 CHDSA<31:24> 23:16 CHDSA<23:16> 15:8 CHDSA<15:8> 7:0 CHDSA<7:0> Bit 26/18/10/2 Bit 25/17/9/1 Bit 24/16/8/0 DMA 控制器 0xB0 DCHxSSIZ (1,2,3) 31:24 23:16 15:8 CHSSIZ<15:8> (5) 7:0 CHSSIZ<7:0> 0xC0 DCHxDSIZ (1,2,3) 31:24 23:16 15:8 CHDSIZ<15:8> (5) 7:0 CHDSIZ<7:0> 0xD0 DCHxSPTR 31:24 23:16 15:8 CHSPTR<15:8> (5) 7:0 CHSPTR<7:0> 0xE0 DCHxDPTR 31:24 23:16 15:8 CHDPTR<15:8> (5) 7:0 CHDPTR<7:0> 0xF0 DCHxCSIZ (1,2,3) 31:24 23:16 15:8 CHCSIZ<15:8> (5) 7:0 CHCSIZ<7:0> 0x100 DCHxCPTR 31:24 23:16 15:8 CHCPTR<15:8> (5) 7:0 CHCPTR<7:0> 0x110 DCHxDAT (1,2,3) 31:24 23:16 15:8 7:0 CHPDAT<7:0> 图注 : = 未实现, 读为 0 地址偏移值以十六进制显示 注 1: 该寄存器具有关联的清零寄存器, 位于 0x4 字节偏移处 这些清零寄存器的命名方式是在关联寄存器的名称末尾附加 CLR ( 例如, DMACONCLR) 向清零寄存器的任意位写入 1 时, 会将关联寄存器中的有效位清零 对清零寄存器的读操作将被忽略 2: 该寄存器具有关联的置 1 寄存器, 位于 0x8 字节偏移处 这些置 1 寄存器的命名方式是在关联寄存器的名称末尾附加 SET ( 例如, DMACONSET) 向置 1 寄存器的任意位写入 1 时, 会将关联寄存器中的有效位置 1 对置 1 寄存器的读操作将被忽略 3: 该寄存器具有关联的取反寄存器, 位于 0xC 字节偏移处 这些取反寄存器的命名方式是在关联寄存器的名称末尾附加 INV( 例如, DMACONINV) 向取反寄存器的任意位写入 1 时, 会将关联寄存器中的有效位取反 对取反寄存器的读操作将被忽略 4: 该位并非在所有器件上都可用 详情请参见具体器件数据手册 5: 根据不同的器件类型, 并非所有位都可用 详情请参见具体器件数据手册 2010 Microchip Technology Inc. DS61117E_CN 第 31-7 页

8 PIC32MX 系列参考手册 寄存器 31-1: DMACON:DMA 控制器控制寄存器 r-x r-x r-x r-x r-x r-x r-x r-x bit 31 bit 24 r-x r-x r-x r-x r-x r-x r-x r-x bit 23 bit 16 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 r-x r-x r-x ON FRZ SIDL (1) SUSPEND BUSY (1) bit 15 bit 8 r-x r-x r-x r-x r-x r-x r-x r-x bit 7 bit 0 图注 : R = 可读位 W = 可写位 P = 可编程位 r = 保留位 U = 未实现位 -n = POR 时的值 :(0, 1, x = 未知 ) bit bit 15 保留 : 写入 0 ; 忽略读操作 ON:DMA 使能位 1 = 使能 DMA 模块 0 = 禁止 DMA 模块 注 : 使用 1:1 PBCLK 分频比时, 在清零模块 ON 位的指令之后, 用户的软件不应立即在 SYSCLK 周期中读 / 写外设的 SFR bit 14 FRZ:DMA 冻结位 1 = DMA 在 Debug ( 调试 ) 模式下停止运行 0 = DMA 在 Debug ( 调试 ) 模式下继续运行注 : FRZ 仅在调试异常模式下可写, 在正常模式下强制为 0 bit 13 (1) SIDL: 空闲模式停止位 1 = 在 Idle ( 空闲 ) 期间停止 DMA 传输 0 = 在 Idle ( 空闲 ) 期间继续进行 DMA 传输 bit 12 SUSPEND:DMA 暂停位 1 = DMA 传输暂停, 以允许 CPU 无中断地访问数据总线 0 = DMA 正常工作 bit 11 BUSY:DMA 模块忙状态位 (1) bit = DMA 模块处于活动状态 0 = DMA 模块已被禁止, 当前不在传输数据 保留 : 写入 0 ; 忽略读操作 注 1: 该位并非在所有器件上都可用 详情请参见具体器件数据手册 DS61117E_CN 第 31-8 页 2010 Microchip Technology Inc.

9 第 31 章 DMA 控制器 31 寄存器 31-2: DMASTAT:DMA 状态寄存器 (1) r-x r-x r-x r-x r-x r-x r-x r-x bit 31 bit 24 r-x r-x r-x r-x r-x r-x r-x r-x bit 23 bit 16 DMA 控制器 r-x r-x r-x r-x r-x r-x r-x r-x bit 15 bit 8 r-x r-x r-x r-x R-0 R-0 R-0 R-0 RDWR DMACH<2:0> (2) bit 7 bit 0 图注 : R = 可读位 W = 可写位 P = 可编程位 r = 保留位 U = 未实现位 -n = POR 时的值 :(0, 1, x = 未知 ) bit 31-4 保留 : 写入 0 ; 忽略读操作 bit 3 RDWR: 读 / 写状态位 1 = 上一次 DMA 总线访问是读操作 0 = 上一次 DMA 总线访问是写操作 bit 2-0 DMACH<2:0>:DMA 通道位 (2) 注 1: 该寄存器包含最近工作的 DMA 通道的值 2: 根据不同的器件类型, 并非所有位都可用 详情请参见具体器件数据手册 2010 Microchip Technology Inc. DS61117E_CN 第 31-9 页

10 PIC32MX 系列参考手册 寄存器 31-3: DMAADDR:DMA 地址寄存器 (1) R-0 R-0 R-0 R-0 R-0 R-0 R-0 R-0 DMAADDR<31:24> bit 31 bit 24 R-0 R-0 R-0 R-0 R-0 R-0 R-0 R-0 DMAADDR<23:16> bit 23 bit 16 R-0 R-0 R-0 R-0 R-0 R-0 R-0 R-0 DMAADDR<15:8> bit 15 bit 8 R-0 R-0 R-0 R-0 R-0 R-0 R-0 R-0 DMAADDR<7:0> bit 7 bit 0 图注 : R = 可读位 W = 可写位 P = 可编程位 r = 保留位 U = 未实现位 -n = POR 时的值 :(0, 1, x = 未知 ) bit 31-0 DMAADDR<31:0>:DMA 模块地址位 注 1: 该寄存器包含最近 DMA 访问的地址 DS61117E_CN 第 页 2010 Microchip Technology Inc.

11 第 31 章 DMA 控制器 寄存器 31-4: DCRCCON:DMA CRC 控制寄存器 r-x r-x R/W-0 R/W-0 R/W-0 r-x r-x R/W-0 BYTO<1:0> (1) WBO (1,2) BITO (1) bit 31 bit 24 r-x r-x r-x r-x r-x r-x r-x r-x bit 23 bit DMA 控制器 r-x r-x r-x R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 PLEN<4:0> (2) bit 15 bit 8 R/W-0 R/W-0 R/W-0 r-x r-x R/W-0 R/W-0 R/W-0 CRCEN CRCAPP (2) CRCTYP (1) CRCCH<2:0> (1) bit 7 bit 0 图注 : R = 可读位 W = 可写位 P = 可编程位 r = 保留位 U = 未实现位 -n = POR 时的值 :(0, 1, x = 未知 ) bit 保留 : 写入 0 ; 忽略读操作 bit BYTO<1:0>:CRC 字节顺序选择位 (1) 11 = 在半字边界处进行字节顺序交换 ( 即, 使用源数据的半字顺序, 并对于每半个字, 使用源字节的相反顺序 ) 10 = 在字边界处交换半字 ( 即, 使用源数据半字的相反顺序, 并对于每半个字, 使用源字节顺序 ) 01 = 在字边界处进行字节顺序交换 ( 即, 使用源字节的相反顺序 ) 00 = 不交换 ( 即, 使用源数据的字节顺序 ) bit 27 (1,2) WBO:CRC 写字节顺序选择位 1 = 源数据按照 BYTO<1:0> 的定义重新排序后写入目标 0 = 源数据在保持不变的情况下写入目标 bit 保留 : 写入 0 ; 忽略读操作 bit 24 BITO:CRC 位顺序选择位 (1) 当 DCRCCON<CRCTYP> = 1 时 (CRC 模块处于 IP 头模式 ): 1 = IP 头校验和使用从最低有效位 (LSb) 开始的方式计算 ( 即, 进行反射 ) 0 = IP 头校验和使用从最高有效位 (MSb) 开始的方式计算 ( 即, 不进行反射 ) bit 当 DCRCCON<CRCTYP> = 0 时 (CRC 模块处于 LFSR 模式 ): 1 = LFSR CRC 使用从最低有效位开始的方式计算 ( 即, 进行反射 ) 0 = LFSR CRC 使用从最高有效位开始的方式计算 ( 即, 不进行反射 ) 保留 : 写入 0 ; 忽略读操作 注 1: 根据不同的器件类型, 并非所有位在所有器件上都可用 详情请参见具体器件数据手册 2: 当 WBO = 1 时, 不支持未对齐传输, 并且 CRCAPP 位不能置 Microchip Technology Inc. DS61117E_CN 第 页

12 PIC32MX 系列参考手册 寄存器 31-4: DCRCCON:DMA CRC 控制寄存器 ( 续 ) bit 12-8 PLEN<4:0>: 多项式长度位 (2) 当 DCRCCON<CRCTYP> = 1 时 (CRC 模块处于 IP 头模式 ): 不使用这些位 当 DCRCCON<CRCTYP> = 0 时 (CRC 模块处于 LFSR 模式 ): 表示多项式长度 - 1 bit 7 CRCEN:CRC 使能位 1 = 使能 CRC 模块, 通道传输经过 CRC 模块 0 = 禁止 CRC 模块, 通道传输正常进行 bit 6 CRCAPP:CRC 追加模式位 (2) 1 = DMA 将数据从源传输到 CRC 中, 但不传输到目标中 当数据块传输完成时,DMA 会将计算得到的 CRC 值写入由 CHxDSA 指定的单元中 0 = 在 DMA 将数据从源写入目标时, 它会按照 WBO 的设置将数据传输经过 CRC bit 5 CRCTYP:CRC 类型选择位 (1) 1 = CRC 模块将计算 IP 头校验和 0 = CRC 模块将计算 LFSR CRC bit 4-3 保留 : 写入 0 ; 忽略读操作 bit 2-0 CRCCH<2:0>:CRC 通道选择位 (1) 111 = CRC 分配给通道 = CRC 分配给通道 = CRC 分配给通道 = CRC 分配给通道 = CRC 分配给通道 = CRC 分配给通道 = CRC 分配给通道 = CRC 分配给通道 0 注 1: 根据不同的器件类型, 并非所有位在所有器件上都可用 详情请参见具体器件数据手册 2: 当 WBO = 1 时, 不支持未对齐传输, 并且 CRCAPP 位不能置 1 DS61117E_CN 第 页 2010 Microchip Technology Inc.

13 第 31 章 DMA 控制器 31 寄存器 31-5: DCRCDATA:DMA CRC 数据寄存器 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 DCRCDATA<31:24> (1) bit 31 bit 24 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 DCRCDATA<23:16> (1) bit 23 bit 16 DMA 控制器 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 DCRCDATA<15:8> (1) bit 15 bit 8 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 DCRCDATA<7:0> (1) bit 7 bit 0 图注 : R = 可读位 W = 可写位 P = 可编程位 r = 保留位 U = 未实现位 -n = POR 时的值 :(0, 1, x = 未知 ) bit 31-0 DCRCDATA<31:0>:CRC 数据寄存器位 (1) 写入该寄存器会为 CRC 发生器设置种子值 读取该寄存器将返回 CRC 的当前值 在每次读取时, 高于 PLEN 的位将返回 0 当 DCRCCON<CRCTYP> = 1 时 (CRC 模块处于 IP 头模式 ): 只有低 16 位包含 IP 头校验和信息 高 16 位总是为 0 写入该寄存器的数据会被进行转换, 并以二进制补码的形式回读 ( 即, 当前 IP 头校验和值 ) 当 DCRCCON<CRCTYP> = 0 时 (CRC 模块处于 LFSR 模式 ): 在每次读取时, 高于 PLEN 的位将返回 0 注 1: 根据不同的器件类型, 并非所有位都可用 详情请参见具体器件数据手册 2010 Microchip Technology Inc. DS61117E_CN 第 页

14 PIC32MX 系列参考手册 寄存器 31-6: DCRCXOR:DMA CRC 异或使能寄存器 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 DCRCXOR<31:24> (1) bit 31 bit 24 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 DCRCXOR<23:16> (1) bit 23 bit 16 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 DCRCXOR<15:8> (1) bit 15 bit 8 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 DCRCXOR<7:0> (1) bit 7 bit 0 图注 : R = 可读位 W = 可写位 P = 可编程位 r = 保留位 U = 未实现位 -n = POR 时的值 :(0, 1, x = 未知 ) bit 31-0 DCRCXOR<31:0>:CRC 异或寄存器位 (1) 当 DCRCCON<CRCTYP> = 1 时 (CRC 模块处于 IP 头模式 ): 不使用该寄存器 当 DCRCCON<CRCTYP> = 0 时 (CRC 模块处于 LFSR 模式 ): 1 = 使能移位寄存器的异或输入 0 = 禁止移位寄存器的异或输入 ; 数据从寄存器中的前一级直接移入 注 1: 根据不同的器件类型, 并非所有位都可用 详情请参见具体器件数据手册 DS61117E_CN 第 页 2010 Microchip Technology Inc.

15 第 31 章 DMA 控制器 寄存器 31-7: DCHxCON:DMA 通道 x 控制寄存器 r-x r-x r-x r-x r-x r-x r-x r-x bit 31 bit 24 r-x r-x r-x r-x r-x r-x r-x r-x bit 23 bit DMA 控制器 R/W-0 r-x r-x r-x r-x r-x r-x R/W-0 CHBUSY (1) CHCHNS (2) bit 15 bit 8 R/W-0 R/W-0 R/W-0 R/W-0 r-x R-0 R/W-0 R/W-0 CHEN (3) CHAED CHCHN CHAEN CHEDET CHPRI<1:0> bit 7 bit 0 图注 : R = 可读位 W = 可写位 P = 可编程位 r = 保留位 U = 未实现位 -n = POR 时的值 :(0, 1, x = 未知 ) bit 保留 : 写入 0 ; 忽略读操作 bit 15 CHBUSY: 通道忙状态位 (1) 1 = 通道处于活动状态或已使能 0 = 通道处于非活动状态, 并且已禁止 bit 14-9 保留 : 写入 0 ; 忽略读操作 bit 8 CHCHNS: 链通道选择位 (2) bit 7 bit 6 bit 5 bit 4 bit 3 1 = 与自然优先级较低的通道链接 (CH1 将在 CH2 传输完成时使能 ) 0 = 与自然优先级较高的通道链接 (CH1 将在 CH0 传输完成时使能 ) (3) CHEN: 通道使能位 1 = 使能通道 0 = 禁止通道 CHAED: 通道禁止时允许事件位 1 = 即使通道被禁止时, 也登记通道启动 / 中止事件 0 = 通道被禁止时, 将忽略通道启动 / 中止事件 CHCHN: 通道链使能位 1 = 允许对通道进行链接 0 = 不允许对通道进行链接 CHAEN: 通道自动使能位 1 = 连续使能通道, 在数据块传输完成之后不自动禁止 0 = 在数据块传输完成时禁止通道 保留 : 写入 0 ; 忽略读操作 注 1: 该位并非在所有器件上都可用 详情请参见具体器件数据手册 2: 链通道选择位在使能通道链 ( 即, CHCHN = 1) 时有效 3: 当通过清零该位暂停通道时, 用户应用程序应通过查询 CHBUSY 位 ( 如果器件上提供该位 ) 来确定通道何时被暂停, 因为在通道暂停之前, 可能需要一些时钟周期来完成当前事务 2010 Microchip Technology Inc. DS61117E_CN 第 页

16 PIC32MX 系列参考手册 寄存器 31-7: DCHxCON:DMA 通道 x 控制寄存器 ( 续 ) bit 2 CHEDET: 通道事件检测位 1 = 检测到事件 0 = 未检测到事件 bit 1-0 CHPRI<1:0>: 通道优先级位 11 = 通道优先级为 3 ( 最高 ) 10 = 通道优先级为 2 01 = 通道优先级为 1 00 = 通道优先级为 0 注 1: 该位并非在所有器件上都可用 详情请参见具体器件数据手册 2: 链通道选择位在使能通道链 ( 即, CHCHN = 1) 时有效 3: 当通过清零该位暂停通道时, 用户应用程序应通过查询 CHBUSY 位 ( 如果器件上提供该位 ) 来确定通道何时被暂停, 因为在通道暂停之前, 可能需要一些时钟周期来完成当前事务 DS61117E_CN 第 页 2010 Microchip Technology Inc.

17 第 31 章 DMA 控制器 寄存器 31-8: DCHxECON:DMA 通道 x 事件控制寄存器 r-x r-x r-x r-x r-x r-x r-x r-x bit 31 bit 24 R/W-1 R/W-1 R/W-1 R/W-1 R/W-1 R/W-1 R/W-1 R/W-1 CHAIRQ<7:0> bit 23 bit DMA 控制器 R/W-1 R/W-1 R/W-1 R/W-1 R/W-1 R/W-1 R/W-1 R/W-1 CHSIRQ<7:0> bit 15 bit 8 S-0 S-0 R/W-0 R/W-0 R/W-0 r-x r-x r-x CFORCE CABORT PATEN SIRQEN AIRQEN bit 7 bit 0 图注 : S = 可置 1 位 R = 可读位 W = 可写位 P = 可编程位 r = 保留位 U = 未实现位 -n = POR 时的值 :(0, 1, x = 未知 ) bit bit bit 15-8 bit 7 bit 6 bit 5 bit 4 bit 3 bit 2-0 保留 : 写入 0 ; 忽略读操作 CHAIRQ<7:0>: 通道传输中止 IRQ 位 = 中断 255 将中止任何正在进行的传输并将 CHAIF 标志置 = 中断 1 将中止任何正在进行的传输并将 CHAIF 标志置 = 中断 0 将中止任何正在进行的传输并将 CHAIF 标志置 1 CHSIRQ<7:0>: 通道传输启动 IRQ 位 = 中断 255 将启动 DMA 传输 = 中断 1 将启动 DMA 传输 = 中断 0 将启动 DMA 传输 CFORCE: DMA 强制传输位 1 = 向该位写入 1 时, 将强制开始 DMA 传输 0 = 该位总是读为 0 CABORT: DMA 中止传输位 1 = 向该位写入 1 时, 将中止 DMA 传输 0 = 该位总是读为 0 PATEN: 通道模式匹配中止使能位 1 = 在发生模式匹配时中止传输并清零 CHEN 0 = 禁止模式匹配 SIRQEN: 通道启动 IRQ 使能位 1 = 如果发生与 CHSIRQ 匹配的中断, 则启动通道单元传输 0 = 忽略中断号 CHSIRQ, 并且不启动传输 AIRQEN: 通道中止 IRQ 使能位 1 = 如果发生与 CHAIRQ 匹配的中断, 则中止通道传输 0 = 忽略中断号 CHAIRQ, 并且不终止传输保留 : 写入 0 ; 忽略读操作 2010 Microchip Technology Inc. DS61117E_CN 第 页

18 PIC32MX 系列参考手册 寄存器 31-9: DCHxINT:DMA 通道 x 中断控制寄存器 r-x r-x r-x r-x r-x r-x r-x r-x bit 31 bit 24 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 CHSDIE CHSHIE CHDDIE CHDHIE CHBCIE CHCCIE CHTAIE CHERIE bit 23 bit 16 r-x r-x r-x r-x r-x r-x r-x r-x bit 15 bit 8 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 CHSDIF CHSHIF CHDDIF CHDHIF CHBCIF CHCCIF CHTAIF CHERIF bit 7 bit 0 图注 : R = 可读位 W = 可写位 P = 可编程位 r = 保留位 U = 未实现位 -n = POR 时的值 :(0, 1, x = 未知 ) bit bit 23 bit 22 bit 21 bit 20 bit 19 bit 18 bit 17 bit 16 bit 15-8 bit 7 保留 : 写入 0 ; 忽略读操作 CHSDIE: 通道源完成中断允许位 1 = 允许中断 0 = 禁止中断 CHSHIE: 通道源半空中断允许位 1 = 允许中断 0 = 禁止中断 CHDDIE: 通道目标完成中断允许位 1 = 允许中断 0 = 禁止中断 CHDHIE: 通道目标半满中断允许位 1 = 允许中断 0 = 禁止中断 CHBCIE: 通道数据块传输完成中断允许位 1 = 允许中断 0 = 禁止中断 CHCCIE: 通道单元传输完成中断允许位 1 = 允许中断 0 = 禁止中断 CHTAIE: 通道传输中止中断允许位 1 = 允许中断 0 = 禁止中断 CHERIE: 通道地址错误中断允许位 1 = 允许中断 0 = 禁止中断 保留 : 写入 0 ; 忽略读操作 CHSDIF: 通道源完成中断标志位 1 = 通道源指针已到达源结束位置 (CHSPTR = CHSSIZ) 0 = 没有待处理的中断 DS61117E_CN 第 页 2010 Microchip Technology Inc.

19 第 31 章 DMA 控制器 31 寄存器 31-9: DCHxINT:DMA 通道 x 中断控制寄存器 ( 续 ) bit 6 CHSHIF: 通道源半空中断标志位 1 = 通道源指针已到达源中点位置 (CHSPTR = CHSSIZ/2) 0 = 没有待处理的中断 bit 5 CHDDIF: 通道目标完成中断标志位 1 = 通道目标指针已到达目标结束位置 (CHDPTR = CHDSIZ) 0 = 没有待处理的中断 bit 4 CHDHIF: 通道目标半满中断标志位 1 = 通道目标指针已到达目标中点位置 (CHDPTR = CHDSIZ/2) 0 = 没有待处理的中断 bit 3 CHBCIF: 通道数据块传输完成中断标志位 1 = 数据块传输已完成 ( 已传输了 CHSSIZ/CHDSIZ 中较大者对应的字节数 ), 或者发生了模式匹配事件 0 = 没有待处理的中断 bit 2 CHCCIF: 通道单元传输完成中断标志位 1 = 单元传输已完成 ( 已传输了 CHCSIZ 字节 ) 0 = 没有待处理的中断 bit 1 CHTAIF: 通道传输中止中断标志位 1 = 已检测到与 CHAIRQ 匹配的中断, DMA 传输已中止 0 = 没有待处理的中断 bit 0 CHERIF: 通道地址错误中断标志位 1 = 检测到通道地址错误源地址或目标地址无效 0 = 没有待处理的中断 DMA 控制器 2010 Microchip Technology Inc. DS61117E_CN 第 页

20 PIC32MX 系列参考手册 寄存器 31-10: DCHxSSA:DMA 通道 x 源起始地址寄存器 R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x CHSSA<31:24> bit 31 bit 24 R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x CHSSA<23:16> bit 23 bit 16 R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x CHSSA<15:8> bit 15 bit 8 R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x CHSSA<7:0> bit 7 bit 0 图注 : R = 可读位 W = 可写位 P = 可编程位 r = 保留位 U = 未实现位 -n = POR 时的值 :(0, 1, x = 未知 ) bit 31-0 CHSSA<31:0>: 通道源起始地址位通道源起始地址 注 : 这必须是源的物理地址 DS61117E_CN 第 页 2010 Microchip Technology Inc.

21 第 31 章 DMA 控制器 31 寄存器 31-11: DCHxDSA:DMA 通道 x 目标起始地址寄存器 R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x CHDSA<31:24> bit 31 bit 24 R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x CHDSA<23:16> bit 23 bit 16 DMA 控制器 R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x CHDSA<15:8> bit 15 bit 8 R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x CHDSA<7:0> bit 7 bit 0 图注 : R = 可读位 W = 可写位 P = 可编程位 r = 保留位 U = 未实现位 -n = POR 时的值 :(0, 1, x = 未知 ) bit 31-0 CHDSA<31:0>: 通道目标起始地址位通道目标起始地址 注 : 这必须是目标的物理地址 2010 Microchip Technology Inc. DS61117E_CN 第 页

22 PIC32MX 系列参考手册 寄存器 31-12: DCHxSSIZ:DMA 通道 x 源大小寄存器 r-x r-x r-x r-x r-x r-x r-x r-x bit 31 bit 24 r-x r-x r-x r-x r-x r-x r-x r-x bit 23 bit 16 R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x CHSSIZ<15:8> (1) bit 15 bit 8 R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x CHSSIZ<7:0> (1) bit 7 bit 0 图注 : R = 可读位 W = 可写位 P = 可编程位 r = 保留位 U = 未实现位 -n = POR 时的值 :(0, 1, x = 未知 ) bit 保留 : 写入 0 ; 忽略读操作 bit 15-0 CHSSIZ<15:0>: 通道源大小位 (1) = 源大小为 65,535 字节 2 = 源大小为 2 字节 1 = 源大小为 1 字节 0 = 源大小为 65,536 字节 注 1: 根据不同的器件类型, 并非所有位都可用 详情请参见具体器件数据手册 DS61117E_CN 第 页 2010 Microchip Technology Inc.

23 第 31 章 DMA 控制器 31 寄存器 31-13: DCHxDSIZ:DMA 通道 x 目标大小寄存器 r-x r-x r-x r-x r-x r-x r-x r-x bit 31 bit 24 r-x r-x r-x r-x r-x r-x r-x r-x bit 23 bit 16 DMA 控制器 R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x CHDSIZ<15:8> (1) bit 15 bit 8 R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x CHDSIZ<7:0> (1) bit 7 bit 0 图注 : R = 可读位 W = 可写位 P = 可编程位 r = 保留位 U = 未实现位 -n = POR 时的值 :(0, 1, x = 未知 ) bit 保留 : 写入 0 ; 忽略读操作 bit 15-0 CHDSIZ<15:0>: 通道目标大小位 (1) = 目标大小为 65,535 字节 2 = 目标大小为 2 字节 1 = 目标大小为 1 字节 0 = 目标大小为 65,536 字节 注 1: 根据不同的器件类型, 并非所有位都可用 详情请参见具体器件数据手册 2010 Microchip Technology Inc. DS61117E_CN 第 页

24 PIC32MX 系列参考手册 寄存器 31-14: DCHxSPTR:DMA 通道 x 源指针寄存器 (1) r-x r-x r-x r-x r-x r-x r-x r-x bit 31 bit 24 r-x r-x r-x r-x r-x r-x r-x r-x bit 23 bit 16 R-0 R-0 R-0 R-0 R-0 R-0 R-0 R-0 CHSPTR<15:8> (2) bit 15 bit 8 R-0 R-0 R-0 R-0 R-0 R-0 R-0 R-0 CHSPTR<7:0> (2) bit 7 bit 0 图注 : R = 可读位 W = 可写位 P = 可编程位 r = 保留位 U = 未实现位 -n = POR 时的值 :(0, 1, x = 未知 ) bit 保留 : 写入 0 ; 忽略读操作 bit 15-0 CHSPTR<15:0>: 通道源指针位 (2) = 指向源的字节 65,535 1 = 指向源的字节 1 0 = 指向源的字节 0 注 1: 处于模式检测模式时, 该寄存器会在模式检测时复位 2: 根据不同的器件类型, 并非所有位都可用 详情请参见具体器件数据手册 DS61117E_CN 第 页 2010 Microchip Technology Inc.

25 第 31 章 DMA 控制器 31 寄存器 31-15: DCHxDPTR:DMA 通道 x 目标指针寄存器 r-x r-x r-x r-x r-x r-x r-x r-x bit 31 bit 24 r-x r-x r-x r-x r-x r-x r-x r-x bit 23 bit 16 DMA 控制器 R-0 R-0 R-0 R-0 R-0 R-0 R-0 R-0 CHDPTR<15:8> (1) bit 15 bit 8 R-0 R-0 R-0 R-0 R-0 R-0 R-0 R-0 CHDPTR<7:0> (1) bit 7 bit 0 图注 : R = 可读位 W = 可写位 P = 可编程位 r = 保留位 U = 未实现位 -n = POR 时的值 :(0, 1, x = 未知 ) bit 保留 : 写入 0 ; 忽略读操作 bit 15-0 CHDPTR<15:0>: 通道目标指针位 (1) = 指向目标的字节 65,535 1 = 指向目标的字节 1 0 = 指向目标的字节 0 注 1: 根据不同的器件类型, 并非所有位都可用 详情请参见具体器件数据手册 2010 Microchip Technology Inc. DS61117E_CN 第 页

26 PIC32MX 系列参考手册 寄存器 31-16: DCHxCSIZ:DMA 通道 x 单元大小寄存器 r-x r-x r-x r-x r-x r-x r-x r-x bit 31 bit 24 r-x r-x r-x r-x r-x r-x r-x r-x bit 23 bit 16 R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x CHCSIZ<15:8> (1) bit 15 bit 8 R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x CHCSIZ<7:0> (1) bit 7 bit 0 图注 : R = 可读位 W = 可写位 P = 可编程位 r = 保留位 U = 未实现位 -n = POR 时的值 :(0, 1, x = 未知 ) bit 保留 : 写入 0 ; 忽略读操作 bit 15-0 CHCSIZ<15:0>: 通道单元大小位 (1) = 在发生事件时传输 65,535 字节 2 = 在发生事件时传输 2 字节 1 = 在发生事件时传输 1 字节 0 = 在发生事件时传输 65,536 字节 注 1: 根据不同的器件类型, 并非所有位都可用 详情请参见具体器件数据手册 DS61117E_CN 第 页 2010 Microchip Technology Inc.

27 第 31 章 DMA 控制器 31 寄存器 31-17: DCHxCPTR:DMA 通道 x 单元指针寄存器 (1) r-x r-x r-x r-x r-x r-x r-x r-x bit 31 bit 24 r-x r-x r-x r-x r-x r-x r-x r-x bit 23 bit 16 DMA 控制器 R-0 R-0 R-0 R-0 R-0 R-0 R-0 R-0 CHCPTR<15:8> (2) bit 15 bit 8 R-0 R-0 R-0 R-0 R-0 R-0 R-0 R-0 CHCPTR<7:0> (2) bit 7 bit 0 图注 : R = 可读位 W = 可写位 P = 可编程位 r = 保留位 U = 未实现位 -n = POR 时的值 :(0, 1, x = 未知 ) bit 保留 : 写入 0 ; 忽略读操作 bit 15-0 CHCPTR<7:0>: 通道单元进度指针位 (2) = 自上一个事件以来已传输了 65,535 字节 1 = 自上一个事件以来已传输了 1 字节 0 = 自上一个事件以来已传输了 0 字节 注 1: 处于模式检测模式时, 该寄存器会在模式检测时复位 2: 根据不同的器件类型, 并非所有位都可用 详情请参见具体器件数据手册 2010 Microchip Technology Inc. DS61117E_CN 第 页

28 PIC32MX 系列参考手册 寄存器 31-18: DCHxDAT:DMA 通道 x 模式数据寄存器 r-x r-x r-x r-x r-x r-x r-x r-x bit 31 bit 24 r-x r-x r-x r-x r-x r-x r-x r-x bit 23 bit 16 r-x r-x r-x r-x r-x r-x r-x r-x bit 15 bit 8 R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x R/W-x CHPDAT<7:0> bit 7 bit 0 图注 : R = 可读位 W = 可写位 P = 可编程位 r = 保留位 U = 未实现位 -n = POR 时的值 :(0, 1, x = 未知 ) bit 31-8 bit 7-0 保留 : 写入 0 ; 忽略读操作 CHPDAT<7:0>: 通道数据寄存器位模式终止模式 : 要用于进行匹配的数据必须存储在该寄存器中, 以允许在发生匹配时终止 所有其他模式 : 未使用 DS61117E_CN 第 页 2010 Microchip Technology Inc.

29 31.3 工作模式 第 31 章 DMA 控制器 DMA 模块提供以下工作模式 : 基本传输模式 模式匹配终止模式 通道链模式 通道自动使能模式 特殊功能模块 (Special Function Module, SFM) 模式 :LFSR CRC 和 IP 头校验和请注意, 这些工作模式不是互斥的, 可以同时工作 例如,DMA 控制器可以使用链接的通道执行 CRC 计算, 并在发生模式匹配时终止传输 31 DMA 控制器 DMA 控制器术语 事件 : 可以启动或中止 DMA 传输的任何系统事件 事务 : 单字传输 ( 最多 4 字节 ), 由读操作和写操作组成 单元传输 : 在 DMA 通道启动传输时传输的字节数 ( 由 DCHxCSIZ 寄存器指定 ), 之后通道会等待另一个事件 单元传输由一个或多个事务组成 数据块传输 : 定义为在通道使能时传输的字节数 字节数对应于 DCHxSSIZ 或 DCHxDSIZ 的较大者 数据块传输由一个或多个单元传输组成 基本传输模式工作原理 DMA 通道可以在无需 CPU 干预的情况下将数据从源寄存器传输到目标寄存器 通道源起始地址寄存器 (DCHxSSA) 用于定义源的物理起始地址 通道目标起始地址寄存器 (DCHxDSA) 用于定义目标的物理起始地址 源和目标可使用 DCHxSSIZ 和 DCHxDSIZ 寄存器独立配置 单元传输通过以下两种方式之一启动 : 软件可以通过将通道 CFORCE (DCHxECON<7>) 位置 1 来启动传输 器件上发生与 CHSIRQ 中断匹配的中断事件, 并且 SIRQEN(DCHxECON<4>)= 1 用户可以选择器件上的任意中断来启动 DMA 传输 在启动 DMA 传输 ( 发生事件 ) 时, 它将传输 DCHxCSIZ ( 单元传输 ) 个字节 通道将保持使能, 直到 DMA 通道传输的字节数达到 DCHxSSIZ 和 DCHxDSIZ 中较大者对应的字节数 ( 即, 数据块传输完成 ) 如果 DCHxCSIZ 大于 DCHxSSIZ 和 DCHxDSIZ 中的较大者, 则将传输 DCHxSSIZ 和 DCHxDSIZ 较大者对应的字节数 当通道被禁止时, 将禁止进一步的传输, 直到通道重新使能为止 (CHEN 设置为 1) 每个通道会使用指针 DCHxSPTR 和 DCHxDPTR 来跟踪从源和目标传输的字数 当源或目标指针达到一半位置 (DCHxSSIZ/2 或 DCHxDSIZ/2) 时, 或者源或目标计数器达到结束位置时, 将会产生中断 这些中断分别为 CHSHIF(DCHxINT<6>) CHDHIF(DCHxINT<4>) CHSDIF (DCHxINT<7>) 或 CHDDIF (DCHxINT<5>) 2010 Microchip Technology Inc. DS61117E_CN 第 页

30 PIC32MX 系列参考手册 DMA 传输请求可以通过以下事件复位 : 写入 CABORT 位 (DCHxECON<6>) 在通道自动使能模式位 CHAEN (DCHxCON<4>) 未置 1 的情况下, 发生了模式匹配 ( 如果已按照第 节 模式匹配终止模式工作原理 中所述使能了模式匹配 ) 器件上发生与 CHAIRQ <7:0> 位 (DCHxECON<23:16>) 中断匹配的中断事件 ( 如果已通过 AIRQEN (DCHxECON<3>) 允许 ) 检测到地址错误 单元传输完成 在通道自动使能模式 (CHAEN) 未置 1 的情况下, 数据块传输完成在发生通道中止中断时, 通道传输中止中断标志 CHTAIF (DCHxINT<1>) 位会置 1 通过它, 用户可以检测中止的 DMA 传输, 并进行恢复 在传输被中止时, 将会完成当前正在进行的任意事务 源指针和目标指针会随传输进度而更新 这些指针是只读的 这些指针会在以下条件下复位 : 如果通道源地址 (DCHxSSA) 被更新, 则源指针 (DCHxSPTR) 将复位 目标地址 (DCHxDSA) 发生类似更新时, 将导致目标指针 (DCHxDPTR) 复位 通过写入 CABORT (DCHxECON<6>) 位中止通道传输 注 : 关于通道事件行为的详细信息, 请参见表 31-4 DS61117E_CN 第 页 2010 Microchip Technology Inc.

31 例 31-1: 基本传输模式下 DMA 通道初始化的代码示例 第 31 章 DMA 控制器 31 /* The following code example illustrates the DMA channel 0 configuration for a data transfer. */ IEC1CLR=0x ; // disable DMA channel 0 interrupts IFS1CLR=0x ; // clear existing DMA channel 0 interrupt flag DMACONSET=0x ; DCH0CON=0x3; // enable the DMA controller // channel off, pri 3, no chaining DMA 控制器 CH0ECON=0; DCH0SSA=0x1d010000; DCH0DSA=0x1d020000; DCH0SSIZ=200; DCH0DSIZ=200; DCH0CSIZ=200; DCH0INTCLR=0x00ff00ff; DCH0CONSET=0x80; // no start or stop irq s, no pattern match // program the transfer // transfer source physical address // transfer destination physical address // source size 200 bytes // destination size 200 bytes // 200 bytes transferred per event // clear existing events, disable all interrupts // turn channel on // initiate a transfer DCH0ECONSET=0x ; // set CFORCE to 1 // do something else // poll to see that the transfer was done while(true) { register int pollcnt; // use a poll counter. // continuously polling the DMA controller in a tight // loop would affect the performance of the DMA transfer } int dmaflags=dch0int; if( (dmaflags&0xb) { // one of CHERIF (DCHxINT<0>), CHTAIF (DCHxINT<1>) // or CHBCIF (DCHxINT<3>) flags set break; // transfer completed } pollcnt=100; // use an adjusted value here while(pollcnt--); // wait before reading again the DMA controller // check the transfer completion result 中断和指针更新 在每个事务完成之后, 源和目标指针会更新 也会在此时设置或清除中断 如果在事务期间指针超过中点, 中断会相应地进行更新 指针会在发生以下事件时复位 : 任何器件复位时 DMA 关闭 (ON 位 (DMACON<15>) 为 0) 时 数据块传输完成, 无论 CHAEN (DCHxCON<4>) 的状态如何 模式匹配终止传输, 无论 CHAEN (DCHxCON<4>) 的状态如何 写入 CABORT (DCHxECON<6>) 标志 源或目标起始地址被更新 2010 Microchip Technology Inc. DS61117E_CN 第 页

32 PIC32MX 系列参考手册 模式匹配终止模式工作原理 通过模式匹配终止模式, 用户可以在事务期间写入的数据字节与特定模式 ( 由 DCHxDAT 寄存器定义 ) 匹配时结束传输 对待模式匹配的方式与数据块传输完成相同, 这种情况下 CHBCIF 位 (DCHxINT<3>) 会置 1, CHEN 位 (DCHxCON<7>) 会清零 该功能在需要使用可变数据大小的应用中很有用, 并且可以方便 DMA 通道的设置 UART 是可以有效使用该功能的一个很好示例 假设系统具有一系列的消息, 这些消息定期发送到外部主机, 消息最大容量为 86 个字符, 用户可以在通道上设置以下参数 : DCHxSSIZ 设置为 87 字节 : 如果发生意外情况, CPU 程序将在缓冲区溢出时产生中断, 并执行相应的操作 DCHxDSIZ 设置为 1 字节 目标地址设置为 UART TXREG DCHxDAT 设置为 0x00, 这将在任何字节轨道中检测到 NULL 字符时停止传输 CHSIRQ (DCHxECON<15:8>) 设置为 UART 发送缓冲区为空 IRQ SIRQEN (DCHxECON<4>) 置 1, 允许通道响应启动中断事件 起始地址设置为要传输消息的起始地址 使能通道, CHEN (DCHxCON<7>) = 1 然后, 用户将通过 CFORCE (DCHxECON<7>) 强制开始单元传输, UART 将传输第一个字节 每次 UART 发送一个字节时, 传输缓冲区空中断将启动从源向 UART 传输下一个字节 当 DMA 通道在通道的任何字节轨道中检测到 NULL 字符时, 事务将完成, 通道将被禁止 模式匹配与源数据的字节轨道无关 如果源缓冲区中的任意字节与 DCHxDAT 匹配, 则会检测到模式匹配事件 事务将完成, 从源读取的数据将写入目标 DS61117E_CN 第 页 2010 Microchip Technology Inc.

33 例 31-2: 模式匹配传输模式下 DMA 通道初始化的代码示例 第 31 章 DMA 控制器 /* The following code example illustrates the DMA channel 0 configuration for data transfer with pattern match enabled.transfer from the UART1 a <CR> ended string, at most 200 characters long */ IEC1CLR=0x ; IFS1CLR=0x ; // disable DMA channel 0 interrupts // clear any existing DMA channel 0 interrupt flag 31 DMA 控制器 DMACONSET=0x ; DCH0CON=0x03; DCH0ECON=(27 <<8) 0x30; DCH0DAT= \r ; DCH0SSA=VirtToPhys(&U1RXREG); DCH0DSA=0x1d020000; DCH0SSIZ=1; DCH0DSIZ=200; DCH0CSIZ=1; DCH0INTCLR=0x00ff00ff; DCH0INTSET=0x ; // enable the DMA controller // channel off, priority 3, no chaining // start irq is UART1 RX, pattern match enabled // pattern value, carriage return // program the transfer // transfer source physical address // transfer destination physical address // source size is 1 byte // destination size at most 200 bytes // one byte per UART transfer request // clear existing events, disable all interrupts // enable Block Complete and error interrupts IPC9CLR=0x f; // clear the DMA channel 0 priority and sub-priority IPC9SET=0x ; // set IPL 5, sub-priority 2 IEC1SET=0x ; // enable DMA channel 0 interrupt DCH0CONSET=0x80; // turn channel on // wait for the UART1 RX interrupt to initiate a // transfer // do something else // will get an interrupt when the transfer is done // or when an address error occurred 2010 Microchip Technology Inc. DS61117E_CN 第 页

34 PIC32MX 系列参考手册 通道链模式工作原理 通道链是对 DMA 通道操作的增强 通道 ( 从通道 ) 可以与邻接通道 ( 主通道 ) 进行链接 在主通道的数据块传输完成 ( 即, CHBCIF (DCHxINT<3>) 置 1) 时, 从通道会被使能 此时, 从通道上的任何事件都可以启动单元传输 如果通道具有待处理事件, 则单元传输会立即开始 主通道将以正常方式设置其中断标志 CHBCIF(CHxINT<3>), 并且不会知道从通道的 链 状态 如果 CHSDIE/CHDDIE/CHBCIE (DCHxINT<23/21/19>) 位中有一个位置 1, 主通道仍然能够在 DMA 传输结束时产生中断 在通道自然优先级中, 通道 0 优先级最高, 通道 7 优先级最低 在使能通道链 (CHCHN (DCHxCON<5>)= 1) 的情况下, 可以使能特定通道的较高或较低优先级通道 ( 通过 CHCHNS (DCHxCON<8>) 进行选择 ) 注 : 在某些器件中, 通道 0 优先级最高, 通道 4 优先级最低 关于可用性, 请参见具体器件数据手册 DMA 模块具有在通道被禁止时允许事件的功能, 该功能通过 CHAED (DCHxCON<6>) 使能 该位在通道链模式下特别有用, 在该模式下, 从通道需要在通道被主通道使能时立即准备好启动传输 以下示例说明了通道链可以产生作用的情形 : 1. 从一个外设 ( 例如, 通过 DMA 通道 0 以 9600 波特率从 UART1 到 SRAM) 向另一个外设 ( 例如, 通过 DMA 通道 1 以 波特率从 SRAM 到 UART2) 传输数据 在该示例中,CHAED 在两个通道中均置 1 ; 在发送最后一个字节之后,UART2 会将通道 1 上的事件检测位 CHEDET (DCHxCON<2>) 置 1 在通道 0 完成传输时, 通道 1 会立即使能, 并立即传输数据 2. A/D 转换器向一个缓冲区传输数据 ( 与通道 0 连接 ) 当目标缓冲区 0 变满 ( 数据块传输完成 ) 时, 通道 1 会被使能, 后续的转换数据将传输到缓冲区 1 在此例中, CHAED 不会被使能 如果它被使能, 则通道 1 会再次传输由通道 0 传输的最后一个字 ( 因为 A/D 转换器中断事件会将两个通道中的事件检测标志 CHEDET 都置 1) DS61117E_CN 第 页 2010 Microchip Technology Inc.

35 第 31 章 DMA 控制器 例 31-3: 通道链模式下 DMA 通道初始化的代码示例 /* The following code example illustrates the DMA channel 0 configuration for data transfer with pattern match enabled.dma channel 0 transfer from the UART1 to a RAM buffer while DMA channel 1 transfers data from the RAM buffer to UART2.Transferred strings are at most 200 characters long. Transfer on UART2 will start as soon as the UART1 transfer is completed. */ unsigned char mybuff<200>;// transfer buffer 31 DMA 控制器 IEC1CLR=0x ; IFS1CLR=0x ; DMACONSET=0x ; // disable DMA channel 0 interrupts // clear any existing DMA channel 0 interrupt flag // enable the DMA controller DCH0CON=0x3; // channel 0 off, priority 3, no chaining DCH1CON=0x62; // channel 1 off, priority 2 // chain to higher priority // (channel 0), enable events detection while disabled DCH0ECON=(27 <<8) 0x30; DCH1ECON=(42 <<8) 0x30; DCH0DAT=DCH1DAT= \r ; // start irq is UART1 RX, pattern enabled // start irq is UART1 TX, pattern enabled // pattern value, carriage return // program channel 0 transfer DCH0SSA=VirtToPhys(&U1RXREG); // transfer source physical address DCH0DSA=VirtToPhys(myBuff); // transfer destination physical address DCH0SSIZ=1; // source size is 1 byte DCH0DSIZ=200; // dst size at most 200 bytes DCH0CSIZ=1; // one byte per UART transfer request // program channel 1 transfer DCH1SSA=VirtToPhys(myBuff); // transfer source physical address DCH1DSA=VirtToPhys(&U2TXREG); // transfer destination physical address DCH1SSIZ=200; // source size at most 200 bytes DCH1DSIZ=0; // dst size is 1 byte DCH1CSIZ=1; // one byte per UART transfer request DCH0INTCLR=0x00ff00ff; DCH1INTCLR=0x00ff00ff; DCH1INTSET=0x ; // DMA0:clear events, disable interrupts // DMA1:clear events, disable interrupts // DMA1:enable Block Complete and error interrupts IPC9CLR=0x00001f1f; // clear the DMA channels 0 and 1 priority and // sub-priority IPC9SET=0x00000b16; // set IPL 5, sub-priority 2 for DMA channel 0 // set IPL 2, sub-priority 3 for DMA channel 1 IEC1SET=0x ; // enable DMA channel 1 interrupt DCH0CONSET=0x80; // turn channel on // do something else // the UART1 RX interrupts will initiate the DMA channel 0 transfer // once this transfer is complete, the DMA channel 1 will start // upon DMA channel 1 transfer completion will get an interrupt while(!intch1ocurred); // poll DMA channel 1 interrupt 2010 Microchip Technology Inc. DS61117E_CN 第 页

36 PIC32MX 系列参考手册 通道自动使能模式工作原理 通道自动使能可以用于使通道保持活动状态, 即使数据块传输已完成或发生模式匹配 这使用户可以不必在每次数据块传输完成时重新使能通道 要使用该模式, 用户需要配置通道 : 先将 CHAEN (DCHxCON<4>) 位置 1, 然后再使能通道, 即将 CHEN 位 (DCHxCON<7>) 置 1 通道将按正常模式工作, 只是正常传输终止不会导致通道被禁止 正常数据块传输完成定义为 : 数据块传输完成 检测到模式匹配如前面所述, 通道指针会发生复位 该模式对于需要重复进行模式匹配的应用很有用 注 : CHAEN 可以防止通道在使能之后自动被禁止 通道仍然必须通过软件使能 暂停传输 用户应用程序可以通过写入 SUSPEND 位 (DMACON<12>) 来立即暂停 DMA 模块 这会立即暂停 DMA 控制器, 使之不再执行任何后续的总线事务 根据不同的器件型号, 当通过将 SUSPEND 位置 1 而暂停 DMA 模块时, 用户应用程序应通过查询 BUSY (DMACON<11>) 位来确定在当前事务完成之后模块完全暂停的时间 注 : 每个通道可以使用 CHEN (DCHxCON<7>) 位暂停 如果 DMA 传输正在进行, 并且 CHEN 位清零, 则会完成通道上的当前事务, 而后续事务则会被暂停 根据不同的器件型号, 当通过将 CHEN 位清零而暂停通道时, 用户应用程序应通过查询 CHBUSY (DCHxCON<15>) 位来确定在当前事务完成之后通道完全暂停的时间 清零使能位 (CHEN) 不会影响通道指针或事务计数器 在通道暂停时, 用户可以选择通过将 CHAED (DCHxCON<6>) 置 1 而继续接收事件 ( 中止中断等 ) 复位通道 BUSY 位并非在所有器件上都可用 关于可用性, 请参见具体器件数据手册 每次器件复位时, 通道逻辑都会复位 在写入通道标志位 CABORT (DCHxECON<6>) 时, 通道也会复位 这会清零通道标志位 (CHEN = 0), 清除源和目标指针, 并复位事件检测器 当 CABORT 位置 1 时, 将会在通道复位之前完成当前正在进行的事务 ( 如果有 ), 但所有剩余的事务将被中止 只有在通道被禁止 (CHEN = 0) 时, 用户才应修改通道寄存器 修改源和目标寄存器会使相应的指针寄存器 (DCHxSPTR 或 DCHxDPTR) 复位 注 : 只有在通道被禁止时, 才能更改通道大小 DS61117E_CN 第 页 2010 Microchip Technology Inc.

37 通道优先级和选择 第 31 章 DMA 控制器 DMA 控制器的每个通道都具有关联的自然优先级 通道 0 的自然优先级最高 每个通道具有两个优先级位 CHPRI<1:0>(DCHxCON<1:0>) 这两个位标识通道的优先级 当多个通道具有待处理传输时, 将按照以下方式选择下一个发送数据的通道 : 优先级最高的通道将完成所有单元传输, 然后再切换到优先级较低的通道 ( 请参见图 31-4 中的 PRI3 传输 行为 ) 如果多个通道的优先级相同 (CHPRI 相同 ), 则控制器将在具有该优先级的所有通道之间轮换 对于具有最高优先级的每个通道, 控制器将允许正在进行单元传输的通道完成单个事务 ( 当前单元传输 ), 然后允许同一优先级的下一个通道完成单个事务 ( 请参见图 31-4 中标记 C 和 B 之间的 PRI2 传输 行为 ) 如果在某个优先级较低的通道正在执行事务时, 另一个优先级较高的通道请求进行传输, 则控制器会完成当前传输, 然后再切换到优先级较高的通道 ( 请参见图 31-4 中标记 A 处的事件 ) 31 DMA 控制器 图 31-4: 通道优先级行为 REQ :CH0,PRI0 REQ :CH1,PRI2 REQ :CH2,PRI3 REQ :CH3,PRI2 DMA 活动通道无 无 PRI0 传输 PRI2 传输 PRI3 传输 PRI2 传输 PRI0 传输 在 CH1 和 CH3 之间轮换 A A B C B 转换图注 : A 优先级较高的传输请求 ; 暂停当前传输, 并紧接着进行传输 B 所有优先级最高的传输完成 ; 切换到优先级较低的通道 C 在具有当前优先级的所有通道之间轮换 2010 Microchip Technology Inc. DS61117E_CN 第 页

38 PIC32MX 系列参考手册 字节对齐 DMA 控制器的字节对齐功能让用户无需对源与目标地址进行对齐 事务的读操作部分将读取给定字中可读取的最大字节数 例如, 如果源指针与源大小之间的差距为 N > 4 字节, 则在源指针指向字节 0 时, 将读取 4 字节, 在源指针指向字节 1 时将读取 3 字节, 如此类推 如果源中剩余的字节数为 N<4, 则只会读取前 N 个字节 当所读取的内容包含了读取时更新的寄存器时, 这非常重要 在每次写操作之后, 源指针和目标指针使用已写入的字节数进行更新 用户应当注意, 当传输被中止时, 在事务完成之前, 源指针不一定会反映已发生的读操作 表 31-2 给出了该行为的示例 示例 1 说明了在两个大缓冲区之间传输 9 个字节的简单传输, 在该示例中,CHxSSA = 0x1000,CHxSSIZ = 100,CHxDSA = 0x43F9,CHxDSIZ = 100, 以及 CHxCSIZ = 9 表 31-2: 源和目标指针更新 示例 1 事务工作状态源指针目标指针 传输计数 / 大小 (1) 读地址写地址读数据写数据 (2) 1 读 / xxxx 33_22_11_XX XX_XX_XX_XX 1 写 / A 33_22_11_XX 22_11_XX_XX 1 指针 B 13 2/ A 33_22_11_XX XX_XX_XX_XX 更新 (3) 1 写 2 B 13 2/ C 33_22_11_XX XX_XX_XX_33 1 指针更新 (3) C 14 3/ C 33_22_11_XX XX_XX_XX_XX 2 读 C 14 3/9 100C 440C 77_66_55_44 XX_XX_XX_XX 2 写 1 C 14 3/9 100C 440D 77_66_55_44 66_55_44_XX 2 指针 F 17 6/9 100C 440D 77_66_55_44 XX_XX_XX_XX (3) 更新 2 写 2 F 17 6/9 100C _66_55_44 XX_XX_XX_77 2 指针更新 (3) /9 100C _66_55_44 XX_XX_XX_XX 3 读 / XX_XX_99_88 XX_XX_XX_XX 3 写 / XX_XX_XX_88 XX_99_88_XX 3 指针更新 (3) 12 1A 9/ XX_XX_XX_88 XX_XX_XX_XX 注 1: XX 表示读取的数据被丢弃 2: XX 表示数据未被写入 3: 在指针发生更新时, 中断按需要进行更新 DS61117E_CN 第 页 2010 Microchip Technology Inc.

39 第 31 章 DMA 控制器 31 表 31-3 给出了该行为的另一个示例 示例 2 说明了最坏情况下的总线利用情况 ( 即, 缓冲区未对齐, 目标缓冲区出现折回现象 ); 在该示例中,CHxSSA = 0x1000, CHxSSIZ = 100, CHxDSA = 0x4402, CHxDSIZ = 4, 以及 CHxCSIZ = 8 表 31-3: 源和目标指针更新 示例 2 事务工作状态源指针目标指针 传输计数 / 大小 (1) 读地址写地址读数据 写数据 (2) 1 读 9 0 0/ xxxx 33_22_11_XX XX_XX_XX_XX 1 写 / _22_11_XX 22_11_XX_XX 1 指针 B 2 2/ _22_11_XX XX_XX_XX_XX 更新 (3) 1 写 2 B 2 2/ _22_11_XX XX_XX_XX_33 1 指针更新 (3) C 3 3/ _22_11_XX XX_XX_XX_XX DMA 控制器 2 读 C 3 3/8 100C _66_55_44 XX_XX_XX_XX 2 写 1 C 3 3/8 100C _66_55_44 XX_XX_44_XX 2 指针 D 0 4/8 100C _66_55_44 XX_XX_XX_XX 更新 (3) 2 写 2 D 0 4/8 100C _66_55_44 66_55_XX_XX 2 指针 F 2 6/8 100C _66_55_44 XX_XX_XX_XX 更新 (3) 3 写 3 F 2 6/8 100F _66_55_44 XX_XX_XX_77 3 指针更新 (3) /8 100F _66_55_44 XX_XX_XX_XX 3 读 / BB_AA_99_88 XX_XX_XX_XX 3 写 / BB_AA_99_88 XX_XX_88_XX 3 指针更新 (3) 11 1A 8/ _66_55_44 XX_XX_XX_XX 注 1: XX 表示读取的数据被丢弃 2: XX 表示数据未被写入 3: 在指针发生更新时, 中断按需要进行更新 通道传输行为 使能通道之后 (CHEN (DCHxCON<7>) = 1), 任何启动单元传输的事件都会传输 CHCSIZ (DCHxCSIZ) 个数据字节 这需要一个或多个事务 在单元传输完成时, 通道将恢复为非活动状态, 并等待另一个通道启动事件, 之后才会启动另一个单元传输 当传输的字节数大于 CHSSIZ (DCHxSSIZ) 或 CHDSIZ (DCHxDSIZ) 对应的字节数时, 数据块传输完成, 通道传输将暂停, 并且通道会被禁止 ( 即, 硬件将 CHEN 设置为 0, 指针会复位 ) 2010 Microchip Technology Inc. DS61117E_CN 第 页

40 PIC32MX 系列参考手册 通道使能 每个通道都具有使能位 CHEN, 它可以用于使能通道或禁止出问题的通道 当该位置 1 时,DMA 控制器会处理通道传输请求 当 CHEN 清零时, 通道状态会被保留 ( 这使得可以在传输开始之后暂停通道 ) 在以下条件下, 硬件会将 CHEN 清零 : 数据块传输完成, 指向源或目标中较大者的指针与大小匹配 ( 仅当 CHAEN(DCHxCON<4>) 清零时 ) 在模式匹配模式下发生模式匹配 ( 仅当 CHAEN 清零时 ) 发生中止中断 用户写入 CABORT (DCHxECON<6>) 标志 通道 IRQ 检测 DMA 控制器会维护它自己的一些标志, 用于检测系统中的启动和中止 IRQ, 并且这些标志完全独立于 INT 控制器和 IES/IFS 标志 在执行传输之前, 不一定要使能相应的 IRQ, 在 DMA 传输结束时, 也不一定要清除它 在触发启动或中止 IRQ 系统事件时, DMA 控制器内部逻辑可以自动检测它们, 无需用户干预 通道事件传输启动 指定通道传输可以通过以下事件启动 : 写入 CFORCE 位 (DCHxECON<7>) 在通过 SIRQEN(DCHxECON<4>) 允许的情况下, 发生与 CHSIRQ<7:0>(DCHxECON<15:8>) 值匹配的中断 如果使能了通道 (CHEN = 1), 或者如果 禁止时允许事件 位置 1 ( 即 CHAED (DCHxCON<6>) = 1), 则会登记通道事件 通道事件传输终止 在以下任意情况下, 通道传输会被终止 : 按照第 节 通道中止 中所述中止传输 单元传输完成 ( 传输了 CHCSIZ (DCHxCSIZ) 个字节 ) DMA 传输了 CHSSIZ 或 CHDSIZ 较大者对应的字节数 ( 数据块传输完成 ), 通道在硬件中被禁止, 只有用户软件重新使能通道时, 通道才会响应通道事件 发生模式匹配 ( 如使能 ) 在通过 AIRQEN(DCHxECON<3>) 允许中止中断的情况下, 发生中止中断 CHAIRQ<7:0> (DCHxECON<23:16>) 发生地址错误 一个可以说明如何使用中止中断的示例就是从 UART 通道向存储器传输数据 UART 接收数据可用中断可以用于启动传输, 而 UART 错误中断可以中止传输 通过这种方式, 每次通信通道上发生错误时 ( 帧 / 奇偶错误, 甚至是发生溢出 ), 传输会被停止, 用户代码在 ISR 中获得控制权 ( 如果对于 DMA 控制器允许中止中断 ) 表 31-4 中汇总了会受通道传输启动或终止影响的状态标志 如果使能通道 (CHEN = 1), 或者如果用户选择在通道被禁止时允许事件 (CHAED = 1), 则允许通道中止事件 DS61117E_CN 第 页 2010 Microchip Technology Inc.

41 表 31-4: 第 31 章 DMA 控制器 通道事件行为 事件 说明和功能 受影响的寄存器 系统中断与 CHSIRQ<7:0> (1,2) 匹配通道链事件 (1) 用户写入 CFORCE 位 系统中断与 CHAIRQ<7:0> 匹配 (1,2) (1) 模式匹配 单元传输完成 启动传输的事件通道事件检测位将置 1 CHEDET = 1 如果尚未置 1, 该事件将使能通道 如果事件检测位置 1, 则会 CHEN = 1 立即开始通道传输 通道事件检测位将置 1 CHEDET = 1 终止传输的事件通道事件检测位将复位, 通道将被关闭 中止中断标志置 1 CHEDET = 0 CHEN = 0 CHAIF = 1 当在事务中写入的任意数据字节与 CHPDAT 中的数据匹配时, CHEDET = 0 会发生该事件 CHEN = 0 通道事件检测位复位 CHBCIF = 1 如果 CHAEN = 0, 通道会被关闭 该事件视为数据块传输完成 CHSPTR = 0 事件 CHDPTR = 0 指针复位 CHCPTR = 0 当传输的字节数达到 CHCSIZ 字节时, 会发生该事件 传输事件检测位复位, 通道保持使能, 等待下一个事件 CHEDET = 0 CHCCIF = 1 数据块传输完成 通道事件检测位复位 CHEDET = 0 如果 CHAEN = 0, 通道会被关闭 该事件视为传输完成事件 CHEN = 0 指针复位 CHBCIF = 1 CHSPTR = 0 CHDPTR = 0 CHCPTR = 0 用户写入 CABORT 位 通道被关闭, 通道事件检测位复位 指针复位 CHEDET = 0 CHEN = 0 CHSPTR = 0 CHDPTR = 0 CHCPTR = 0 检测到地址错误 通道被关闭, 事件检测位复位 地址错误中断标志置 1 CHEDET = 0 CHEN = 0 CHERIF = 1 注 1: 只有使能通道时, 或者用户在通道被禁止时允许事件时 (CHEN = 1 或 CHAED = 1), 才允许事件 2: DMA 控制器会维护它自己的一些标志, 用于检测系统中的启动和中止中断请求 (IRQ), 并且这些标志完全 独立于 INT 控制器 IES/IFS 标志 在触发启动或中止 IRQ 系统事件时, DMA 控制器内部逻辑可以自动检测 它们, 无需用户干预 31 DMA 控制器 2010 Microchip Technology Inc. DS61117E_CN 第 页

42 PIC32MX 系列参考手册 通道中止中断 通道可以选择在发生中断事件时中止单元传输 中断通过通道的中止 IRQ (CHAIRQ<7:0> (DCHxECON<23:16>)) 进行选择 任一器件中断事件都可以导致通道中止 只有通过 AIRQEN (DCHxECON<3>) 使能时, 才会发生中止 如果发生这种情况 ( 通常由于定时器超时或模块错误标志 ), 通道的状态标志会通过将其 CHTAIF 位 (DCHxINT<1>) 置 1 来指示出问题通道上的外部中止事件 源和目标指针不会复位, 让用户可以从错误中进行恢复 通道中止 用户可以通过写入 CABORT 位 (DCHxECON<6>) 中止通道传输 在传输被中止时, 控制器会完成当前总线事务, 剩下的所有事务会被中止 CHEN (DCHxCON<7>) 位将清零 在用户写入 CABORT 位时, 源和目标指针会复位 地址错误 如果在传输期间出现的地址 ( 源或目标 ) 为非法地址, 通道的地址错误中断标志 CHERIF (DCHxINT<0>) 将置 1 通道将被禁止, 即硬件会将 CHEN 复位 通道状态不会受影响, 以便协助对问题进行调试 DMA 暂停 如果 SUSPEND 位 (DMACON<12>) 置 1, 则会立即暂停 DMA 事务 控制器将会完成当前的读操作或写操作 如果暂停是在事务的读操作部分中发生的, 则事务将被暂停, 写操作将被搁置 如果暂停是在事务的写操作部分中发生的, 则会完成写操作, 指针按正常情况进行更新 在 SUSPEND 位清零时, 任何先前正在进行的事务将从退出点继续 根据不同的器件型号, 当通过将 SUSPEND 位置 1 而暂停 DMA 模块时, 用户应用程序应通过查询 BUSY (DMACON<11>) 位来确定在当前事务完成之后模块完全暂停的时间 注 : BUSY 位并非在所有器件上都可用 关于可用性, 请参见具体器件数据手册 例 31-4: DMA 控制器暂停 /* The following code example will suspend the DMA Controller. */ DMACONSET=0x ; // suspend the DMA controller while(!(dmaconbits.busy)); // wait for the transfer to be actually suspended // let the CPU have complete control of the bus DMACONCLR=0x ; // clear the suspend mode and let the DMA operate normally // from now on, the CPU and DMA controller share the bus access DS61117E_CN 第 页 2010 Microchip Technology Inc.

43 特殊功能模块 (SFM) 模式 第 31 章 DMA 控制器 31 DMA 模块具有一个集成的特殊功能模块 (SFM), 由所有通道共用 如图 31-5 所示, SFM 具有以下功能块 : LFSR CRC IP 头校验和 字节重新排序 位重新排序 DMA 控制器 图 31-5: 特殊功能模块 (SFM) 数据输入 BYTO 字节重新排序 BITO 位重新排序 LFSR CRC IP 头校验和 CRCDATA 数据输出 注 :CRCAPP = 1 ; WBO = 1 是无效的 CRCAPP WBO 根据不同的器件型号, SFM 是高度可配置的 16 位或 32 位 CRC 发生器 SFM 可以分配给任意可用 DMA 通道, 方法是相应地设置 CRCCH 位 (DCRCCON) SFM 通过将 CRCEN 位 (DCRCCON<7>) 置 1 来使能 通过使用 WBO 位, 可以选择对源数据进行字节重新排序 然后, 可以选择根据 DCRCCON 寄存器中 CRCTYP 位的设置, 将数据传递给 LFSR CRC 或 IP 头校验和功能块, 如图 31-5 中所示 此外,SFM 可以修改与 SFM 关联的 DMA 通道的行为 通道的行为通过 CRCAPP 位 (DCRCCON<6>) 进行选择, 产生以下两种模式 : 后台模式 :CRC 在后台进行计算, 并保持正常的 DMA 行为 ( 见第 节 CRC 后台模式 (CRCAPP = 0) ) 追加模式 : 从源读取的数据写入目标中, 但 CRC 数据在 CRC 数据寄存器中累加 在数据块传输完成时, 累加的 CRC 写入由 DCHxDSA 指定的单元中 ( 见第 节 CRC 追加模式 (CRCAPP = 1) ) 数据写入目标的顺序可以使用 WBO 位 (DRCCON<27>) 进行选择 如果 WBO 位清零, 则数据写入目标时保持不变 如果 WBO 位置 1, 则数据写入目标时, 将按照 CRC 字节顺序选择位 BYTO<1:0> (DRCCON<29:28>) 重新排序 注 : 该功能并非在所有器件上都可用 关于可用性, 请参见具体器件数据手册 2010 Microchip Technology Inc. DS61117E_CN 第 页

44 PIC32MX 系列参考手册 SFM 发生器可以通过在使能通道之前写入 DCRCDATA 寄存器来设置种子值 请注意, 处于 IP 头校验和模式 (CRCTYP = 1) 时, 数据以二进制补码的形式写入和读回, 因为这是校验和的当前值 DCRCDATA 中的 CRC 值可以在 CRC 生成期间的任意时刻读取, 但只有在传输完成之后它才有效 CRC 后台模式 (CRCAPP = 0) 在该模式下, 将保持 DMA 通道的行为 DMA 会从源读取数据, 将数据传递经过 CRC 模块, 并将它写入目标 数据写入目标时将遵从 WBO 选择 在该模式下, 计算得到的 CRC 在数据块传输结束时留在 DCRCDATA 寄存器中 该模式可以用于在数据从源地址传送到目标地址时计算 CRC 数据源可以为存储器缓冲区或外设中的 FIFO 类似地, 目标可以为存储器缓冲区或 FIFO 当数据传输完成时, 用户可以读取计算得到的 CRC 值, 并将它追加到传送数据末尾或用于校验接收到的 CRC 数据 后台模式可能会长时间占用 CRC 模块 例如, 当分配给 UART 数据流时, 在 UART 数据流完成之前, 其他通道无法使用 SFM DS61117E_CN 第 页 2010 Microchip Technology Inc.

45 例 31-5: 后台模式下 DMA LFSR CRC 计算的代码示例 第 31 章 DMA 控制器 /* The following code example illustrates a DMA calculation using the CRC background mode.data is transferred from a 200 bytes Flash buffer to a RAM buffer and the CRC is calculated while the transfer takes place. */ unsigned int blockcrc; IEC1CLR=0x ; IFS1CLR=0x ; // CRC of the flash block // disable DMA channel 0 interrupts // clear any existing DMA channel 0 interrupt flag 31 DMA 控制器 DMACONSET=0x ; DCRCDATA=0xffff; DCRCXOR=0x1021; DCRCCON=0x0f80; // enable the DMA controller // seed the CRC generator // Use the standard CCITT CRC 16 polynomial:x^16+x^12+x^5+1 // CRC enabled, polynomial length 16, background mode // CRC attached to the DMA channel 0. DCH0CON=0x03; DCH0ECON=0; DCH0SSA=VirtToPhys(flashBuff); DCH0DSA=VirtToPhys(ramBuff); DCH0SSIZ=200; DCH0DSIZ=200; DCHOCSIZ=200; DCH0INTCLR=0x00ff00ff; DCH0CONSET=0x80; // channel off, priority 3, no chaining // no start irqs, no match enabled // program channel transfer // transfer source physical address // transfer destination physical address // source size // destination size // 200 bytes per event // DMA0:clear events, disable interrupts // channel 0 on // initiate a transfer DCH0ECONSET=0x ; // set CFORCE to 1 // do something else while the transfer takes place // poll to see that the transfer was done BOOL error=false; while(true) { register int pollcnt; // don t poll in a tight loop int dmaflags=dch0int; if( (dmaflags& 0x3) { // CHERIF (DCHxINT<0>) or CHTAIF (DCHxINT<1> set error=true; // error or aborted... break; } else if (dmaflags&0x8) { // CHBCIF (DCHxINT<3>) set break; // transfer completed normally } pollcnt=100; // use an adjusted value here while(pollcnt--); // wait before polling again } if(!error) { blockcrc=dcrdata; } else { } // read the CRC of the transferred flash block // process error 2010 Microchip Technology Inc. DS61117E_CN 第 页

46 PIC32MX 系列参考手册 CRC 追加模式 (CRCAPP = 1) 在该模式下,DMA 只会将源数据送到 CRC 模块 ; 它不会将源数据写入目标地址中 但是, 在数据块传输完成或发生模式匹配时, DMA 会将 CRC 值写入目标地址 该模式最适合用于多个外设需要使用 CRC 发生器的情况 这种情况下, 输入数据在器件的缓冲区中进行累加 当缓冲区的输入数据完整时, 将会在缓冲区中产生 CRC, 并相应地进行使用 由于 DMA 不需要等待多个事件 ( 通常为中断 ), 所以数据块可以在相当短的时间内传输通过 CRC, 从而允许 CRC 模块分配给不同通道, 或者重定向到不同的数据块 以下使用说明适用于 CRC 追加模式 : 在确定数据块传输是否完成时只需要查看源缓冲区, 目标地址 (DCHxDSA) 仅用作写入所生成 CRC 值的单元 目标大小 (DCHxDSIZ) 最大可以为 4 - 如果 DCHxDSIZ 大于 4, 则仅写入 4 个字节 - 如果 DCHxDSIZ 小于 4, 则仅写入 CRC 的 DCHxDSIZ 个字节 - PLEN 对于写入的 CRC 字节数或位数没有影响 写入之后, 通道会被禁止 任何中止 ( 即, 中止 IRQ 置为有效 ) 都会阻止写入 CRC 值 如果 WBO 设置为 0, 则在追加模式下不支持重新排序 DS61117E_CN 第 页 2010 Microchip Technology Inc.

47 例 31-6: 追加模式下 CRC 计算的代码示例 第 31 章 DMA 控制器 /* The following code example illustrates a DMA calculation using the CRC append mode.the CRC of a 256 bytes flash buffer is calculated without performing any data transfer.as soon as the CRC calculation is completed the CRC value of the flash buffer is available in a local variable for further use. */ unsigned int blockcrc; // CRC of the flash block 31 DMA 控制器 IEC1CLR=0x ; IFS1CLR=0x ; // disable DMA channel 0 interrupts // clear any existing DMA channel 0 interrupt flag DMACONSET=0x ; DCRCDATA=0xffff; DCRCXOR=0x1021; DCRCCON=0x0fc0; // enable the DMA controller // seed the CRC generator // Use the standard CCITT CRC 16 polynomial:x^16+x^12+x^5+1 // CRC enabled, polynomial length 16, append mode // CRC attached to the DMA channel 0. DCH0CON=0x03; DCH0ECON=0; DCH0SSA=VirtToPhys(flashBuff); DCH0DSA=VirtToPhys(&blockCrc); DCH0SSIZ=200; DCH0DSIZ=200; DCHOCSIZ=200; DCH0INTCLR=0x00ff00ff; DCH1INTCLR=0x00ff00ff; DCH0CONSET=0x80; // channel off, priority 3, no chaining // no start irqs, no match enabled // program channel transfer // transfer source physical address // transfer destination physical address // source size // dst size // 200 bytes transferred per event // DMA0:clear events, disable interrupts // DMA1:clear events, disable interrupts // channel 0 on // initiate a transfer DCH0ECONSET=0x ; // set CFORCE to 1 // do something else while the CRC calculation takes place // poll to see that the transfer was done BOOL error=false; while(true) { register int pollcnt; // don t poll in a tight loop int dmaflags=dch0int; if( (dmaflags& 0x3) { // CHERIF (DCHxINT<0>) or CHTAIF (DCHxINT<1> set error=true; // error or aborted... break; } else if (dmaflags&0x8) { // CHBCIF (DCHxINT<3>) set break; // transfer completed normally } pollcnt=100; // use an adjusted value here while(pollcnt--); // wait before polling again } if(error) { } // process error // the block CRC is available in the blockcrc variable 2010 Microchip Technology Inc. DS61117E_CN 第 页

48 PIC32MX 系列参考手册 数据顺序 从源读取的数据可以进行重新排序, 从而支持不同的源数据字节顺序 在 WBO = 1 时, 将向通道目标中写入重新排序后的源数据 在 WBO = 0 时, 将向目标中写入保持不变的源数据 即使用户不使用在 DCRCDATA 中存储的结果, 模块也会执行 CRC 计算 BYTO 控制由模块处理的数据的字节顺序 图 31-6 显示了不同的字节顺序设置, 以及对于数据读操作的影响 BYTO 值 01 用于对字中的字节进行重新排序 而 BYTO 值 10 和 11 用于对半字中的字节进行重新排序 数据在读取时进行重新排序, 注意到这一点非常重要 这意味着未字对齐的数据可能无法正确进行重新排序 使用 SFM 的 LFSR CRC 模式或 IP 头校验和模式时, 可以通过使用 BITO 位更改位顺序 图 31-6: BYTO 值的字节顺序 BYTO=00 Byte3 Byte2 Byte1 Byte0 BYTO=10 Byte3 Byte2 Byte1 Byte0 Byte3 Byte2 Byte1 Byte0 Byte1 Byte0 Byte3 Byte2 BYTO=01 Byte3 Byte2 Byte1 Byte0 BYTO=11 Byte3 Byte2 Byte1 Byte0 Byte0 Byte1 Byte2 Byte3 Byte2 Byte3 Byte0 Byte LFSR CRC CRC 发生器需要一个系统时钟的时间来处理从源读取的每个数据字节 这意味着, 如果从源读取 32 位的数据, 则 CRC 生成将需要 4 个系统时钟来处理数据 当 CRYTYP 位清零时, SFM 设置为 LFSR CRC 模式, 并会计算 LFSR CRC 注 : 该功能并非在所有器件上都可用 关于可用性, 请参见具体器件数据手册 CRC 模块的实现可通过软件进行配置 多项式的各项及其长度可以分别使用 DCRCXOR 位和 PLEN (DCRCCON) 位设定 例 31-7 和例 31-8 给出了 16 位和 32 位 CRC 的多项式 例 31-7: 16 位 CRC 多项式 x 16 + x 12 + x 例 31-8: 32 位 CRC 多项式 x 31 + x 26 + x 23 + x 22 + x 16 + x 12 + x 11 + x 10 + x 8 + x 7 + x 5 + x 4 + x 2 + x + 1 DS61117E_CN 第 页 2010 Microchip Technology Inc.

49 第 31 章 DMA 控制器 31 要在 CRC 发生器中设定任一多项式, 应按下表所示设置 CRC 寄存器位 : 表 31-5: CRC 设置示例 CRC 类型 位名称 位值 具有 16 位 CRC 的器件具有 32 位 CRC 的器件 PLEN<3:0> b1111 DCRCXOR<15:0> b PLEN<4:0> b11111 DCRCXOR<31:0> b DMA 控制器 CRC 发生器中的 PLEN 位 (DCRCCON) 用于选择哪个位用作 CRC 的反馈点 对于 16 位 CRC 示例, 如果 PLEN<3:0> = 0x0110, 则移位寄存器的 bit 6 送到 CRCXOR 寄存器中置 1 的所有位的异或门 CRCXOR 反馈点使用 DCRCXOR 寄存器指定 将 DCRCXOR 寄存器中的第 N 位置 1 时, 会使 CRC 移位寄存器第 N 位的输入与 CRC 移位寄存器第 (PLEN + 1) 位进行异或运算 CRC 发生器的 bit 0 总是进行异或运算 计算 IP 头校验和 当 CRCTYP 位置 1 时, SFM 会计算 IP 头校验和 使用以下过程来计算 IP 头校验和 : 1. 配置通道, 使之指向 IP 头 2. 配置 CRCCON 来使能 SFM, 并选择所使用的通道 3. 将 DCRCCON 寄存器中的 CRCTYP 位置 1, 这会选择 IP 头校验和 4. 将 DCRCDATA 设置为 开始传输 6. 在传输完成时, 从 DCRCDATA 寄存器中读取数据 注 : 该功能并非在所有器件上都可用 关于可用性, 请参见具体器件数据手册 2010 Microchip Technology Inc. DS61117E_CN 第 页

50 PIC32MX 系列参考手册 31.4 中断 DMA 器件能够产生一些中断, 以反映在通道的数据传输期间发生的事件 : 错误中断, 通过每个通道的 CHERIF 位 (DCHxINT<0>) 指示, 并使用 CHERIE 位 (DCHxINT<16>) 允许 在通道传输操作期间发生地址错误时, 将发生该事件 中止中断, 通过每个通道的 CHTAIF 位 (DCHxINT<1>) 指示, 并使用 CHTAIE 位 (DCHxINT<17>) 允许 在允许中止中断请求 (AIRQEN(DCHxECON<3>)= 1) 的情况下, 当 DMA 通道传输由于系统事件 ( 中断 ) 与 CHAIRQ<7:0> (DCHxECON<23:16>) 匹配而中止时, 将发生该事件 数据块传输完成中断, 通过每个通道的 CHBCIF 位 (DCHxINT<3>) 指示, 并使用 CHBCIE 位 (DCHxINT<19>) 允许 当 DMA 通道数据块传输完成时, 会发生该事件 单元传输完成中断, 通过每个通道的 CHCCIF 位 (DCHxINT<2>) 指示, 并使用 CHCCIE 位 (DCHxINT<18>) 允许 当 DMA 通道单元传输完成时, 会发生该事件 源地址指针活动中断 : 在通道源指针达到源结束位置时产生, 通过 CHSDIF 位 (DCHxINT<7>) 指示, 并通过 CHSDIE 位 (DCHxINT<23>) 允许 ; 或者在通道源指针达到源中点位置时产生, 通过 CHSHIF 位 (DCHxINT<6>) 指示, 并通过 CHSHIE 位 (DCHxINT<22>) 允许 目标地址指针活动中断 : 在通道目标指针达到目标结束位置时产生, 通过 CHDDIF 位 (DCHxINT<5>) 指示, 并通过 CHDDIE 位 (DCHxINT<21>) 允许 ; 或者在通道目标指针达到目标中点位置时产生, 通过 CHDHIF 位 (DCHxINT<4>) 指示, 并通过 CHDHIE 位 (DCHxINT<20>) 允许 所有属于 DMA 通道的中断都映射到相应的通道中断向量 注 : 并非所有 DMA 通道在所有器件上都可用 关于可用性, 请参见具体器件数据手册 以下是相应的 DMA 通道中断标志 : DMA0IF (IFS1<16>) DMA1IF (IFS1<17>) DMA2IF (IFS1<18>) DMA3IF (IFS1<19>) DMA4IF (IFS1<20>) DMA5IF (IFS1<21>) DMA6IF (IFS1<22>) DMA7IF (IFS1<23>) 所有这些中断标志必须用软件清零 DMA 通道通过相应的 DMA 中断允许位使能为中断源 : DMA0IE (IEC1<16>) DMA1IE (IEC1<17>) DMA2IE (IEC1<18>) DMA3IE (IEC1<19>) DMA4IE (IEC1<20>) DMA5IE (IEC1<21>) DMA6IE (IEC1<22>) DMA7IE (IEC1<23>) DS61117E_CN 第 页 2010 Microchip Technology Inc.

51 此外, 还必须配置中断优先级位和中断子优先级位 : DMA0IP<2:0> (IPC9<4:2>) 和 DMA0IS<1:0> (IPC9<1:0>) DMA1IP<2:0> (IPC9<12:10>) 和 DMA1IS<1:0> (IPC9<9:8>) DMA2IP<2:0> (IPC9<20:18>) 和 DMA2IS<1:0> (IPC9<17:16>) DMA3IP<2:0> (IPC9<28:26>) 和 DMA3IS<1:0> (IPC9<25:24>) DMA4IP<2:0> (IPC10<4:2>) 和 DMA4IS<1:0> (IPC10<1:0>) DMA5IP<2:0> (IPC10<12:10>) 和 DMA5IS<1:0> (IPC10<9:8>) DMA7IP<2:0> (IPC10<20:18>) 和 DMA6IS<1:0> (IPC10<17:16>) DMA7IP<2:0> (IPC10<28:26>) 和 DMA7IS<1:0> (IPC10<25:24>) 第 31 章 DMA 控制器 31 DMA 控制器 中断配置 每个 DMA 通道在内部具有多个中断标志 (CHSDIF CHSHIF CHDDIF CHDHIF CHBCIF CHCCIF CHTAIF 和 CHERIF) 和相应的中断允许控制位 (CHSDIE CHSHIE CHDDIE CHDHIE CHBCIE CHCCIE CHTAIE 和 CHERIE) 但是, 对于中断控制器, 每个通道只有一个专用的中断标志位 DMAxIF 和相应的中断允许 / 屏蔽位 DMAxIE 注 : 根据不同的器件型号, 最多有 8 个 ( 即 0-7) 中断标志和中断允许 / 屏蔽位可用 关于可用性, 请参见具体器件数据手册 因此请注意, 特定 DMA 通道的所有中断条件仅共用一个中断向量 每个 DMA 通道可以具有独立于其他 DMA 通道的优先级 请注意, DMAxIF 位是否置 1 与相应允许位 DMAxIE 的状态无关 如果需要, 可以用软件查询 DMAxIF 位 DMAxIE 位用于定义在相应 DMAxIF 位置 1 时, 向量中断控制器或 INT 的行为 当相应的 DMAxIE 位清零时, INT 模块不会为事件产生 CPU 中断 如果 DMAxIE 位置 1, 则 INT 模块会在相应的 DMAxIF 位置 1 时向 CPU 产生中断 ( 受以下段落中优先级和子优先级制约 ) 处理特定中断的用户软件程序负责在服务程序完成之前清零相应的中断标志位 每个 DMA 通道的优先级可以使用 IPCx 寄存器中的 DMAxIP 位独立进行设置 这些优先级定义了中断源将分配到的优先级组 优先级组值的范围从 7 ( 最高优先级 ) 到 0 ( 不产生中断 ) 较高优先级组中的中断会抢占正在处理 但优先级较低的中断 子优先级位用于设置中断源在优先级组中的优先级 子优先级值的范围从 3 ( 最高优先级 ) 到 0 ( 最低优先级 ) 处于相同优先级组, 但具有更高子优先级值的中断不会抢占子优先级较低 但正在进行的中断 优先级组和子优先级位让多个中断源可以共用相同的优先级和子优先级 如果在该配置下同时发生若干个中断, 则中断源在优先级 / 子优先级组对中的自然顺序将决定所产生的中断 自然优先级基于中断源的向量编号 向量编号越小, 中断的自然优先级就越高 在当前中断的中断标志清零之后, 所有不按照自然顺序执行的中断会基于优先级 子优先级和自然顺序产生相应的中断 产生允许的中断之后,CPU 将跳转到为该中断分配的向量处 该中断的向量编号与自然顺序编号相同 然后,CPU 将在向量地址处开始执行代码 该向量地址处的用户代码应执行特定于应用程序的操作 清零 DMAxIF 中断标志, 然后退出 关于中断的更多信息, 请参见 PIC32MX 系列参考手册 的第 8 章 中断 (DS61108) 中的向量地址表详细信息 2010 Microchip Technology Inc. DS61117E_CN 第 页

52 PIC32MX 系列参考手册 表 31-6: 各种偏移量的 DMA 中断向量 (EBASE = 0x8000:0000) 中断向量 / 自然顺序 IRQ 编号 向量地址 IntCtl.VS = 0x01 向量地址 IntCtl.VS = 0x02 向量地址 IntCtl.VS = 0x04 向量地址 IntCtl.VS = 0x08 向量地址 IntCtl.VS = 0x10 DMA B A00 DMA A B C00 DMA C B E00 DMA E BC DMA4 (1) C A DMA5 (1) C B DMA6 (1) C C DMA7 (1) CC D 注 1: 这些中断并非在所有器件上都可用 关于可用性, 请参见具体器件数据手册 例 31-9: 允许中断的 DMA 通道初始化代码示例 /* The following code example illustrates a DMA channel 0 interrupt configuration. When the DMA channel 0 interrupt is generated, the CPU will jump to the vector assigned to DMA0 interrupt. */ IEC1CLR=0x ; IFS1CLR=0x ; DMACONSET=0x ; DCH0CON=0x03; DCH0ECON=0; DCH0SSA=0x1d010000; DCH0DSA=0x1d020000; DCH0SSIZ=200; DCH0DSIZ=200; DCH0CSIZ=200; DCH0INTCLR=0x00ff00ff; DCH0INTSET=0x ; // disable DMA channel 0 interrupts // clear any existing DMA channel 0 interrupt flag // enable the DMA controller // channel off, priority 3, no chaining // no start or stop irq s, no pattern match // program the transfer // transfer source physical address // transfer destination physical address // source size 200 bytes // destination size 200 bytes // 200 bytes transferred per event // clear existing events, disable all interrupts // enable Block Complete and error interrupts IPC9CLR=0x f; // clear the DMA channel 0 priority and sub-priority IPC9SET=0x ; // set IPL 5, sub-priority 2 IEC1SET=0x ; // enable DMA channel 0 interrupt DCH0CONSET=0x80; // turn channel on // initiate a transfer DCH0ECONSET=0x ; // set CFORCE to 1 // do something else // will get an interrupt when the block transfer is done // or when error occurred DS61117E_CN 第 页 2010 Microchip Technology Inc.

53 例 31-10: DMA 通道 0 ISR 代码示例 第 31 章 DMA 控制器 /* The following code example demonstrates a simple Interrupt Service Routine for DMA channel 0 interrupts.the user s code at this vector should perform any application specific operations and must clear the DMA0 interrupt flags before exiting. */ void ISR(_DMA_0_VECTOR, ipl5) DMA0Interrupt(void) { int dmaflags=dch0int&0xff; // read the interrupt flags 31 DMA 控制器 /* perform application specific operations in response to any interrupt flag set */ } DCH0INTCLR=0x000000ff; IFS1CLR = 0x ; // clear the DMA channel interrupt flags // Be sure to clear the DMA0 interrupt flags // before exiting the service routine. 注 : DMA ISR 代码示例显示的是 MPLAB C32 C 编译器的特定语法 关于对 ISR 的支持, 请参见编译器手册 2010 Microchip Technology Inc. DS61117E_CN 第 页

54 PIC32MX 系列参考手册 31.5 节能和调试模式下的操作 空闲模式下的 DMA 操作 当器件进入 Idle ( 空闲 ) 模式时, 系统时钟源保持工作, DMA 模块继续工作 在某些器件型号上, SIDL 位 (DMACON<13>) 用于选择在 Idle ( 空闲 ) 模式下模块是停止还是继续工作 如果 SIDL = 0, 则在 Idle( 空闲 ) 模式下模块会继续工作, 并且会关闭时钟 如果 SIDL = 1, 则在 Idle ( 空闲 ) 模式下模块将停止工作 DMA 模块将关闭时钟, 从而降低功耗 注 : DMA 不能由 SIDL 位设置为 1 的外设使用 休眠模式下的 DMA 操作 当器件进入 Sleep ( 休眠 ) 模式时, 系统时钟被禁止 在该模式下不能发生任何 DMA 活动 调试模式下的 DMA 操作 FRZ 位 (DMACON<14>) 决定 CPU 在 Debug ( 调试 ) 模式下执行调试异常代码 ( 即, 应用程序暂停 ) 时, DMA 模块是继续运行还是停止 当 FRZ = 0 时, 即使应用程序在 Debug ( 调试 ) 模式下暂停,DMA 模块也会继续运行 当 FRZ = 1 且应用程序在 Debug( 调试 ) 模式下暂停时, 模块将冻结其操作, 并且不会更改 DMA 模块的状态 在 CPU 继续开始执行代码之后, 模块将继续工作 注 : 只有 CPU 在调试异常模式下执行时,FRZ 位才可读写 在所有其他模式下,FRZ 位读为 0 如果 FRZ 位在 Debug ( 调试 ) 模式期间发生改变, 则只有退出当前调试异常模式并重新进入该模式之后, 新值才会生效 在调试异常模式期间, 在进入 Debug ( 调试 ) 模式时 FRZ 位会读取外设状态 31.6 各种复位的影响 器件复位 在发生器件复位时, 所有 DMA 寄存器会被强制设为它们的复位状态 当异步复位输入变为有效时, DMA 逻辑将 : 复位 DMACON DMASTAT DMAADDR DCRCCON DCRCDATA 和 DCRCXOR 中的所有字段 在每个通道的寄存器字段中设置相应值 :DCHxCON DCHxECON DCHxINT DCHxSSIZ DCHxDSIZ DCHxSPTR DCHxDPTR DCHxCSIZ DCHxCPTR 和 DCHxDAT 复位之后寄存器 DCHxSSA 和 DCHxDSA 具有随机值 中止所有正在进行的数据传输 上电复位 在发生上电复位时, 所有 DMA 寄存器会被强制设为它们的复位状态 看门狗定时器复位 在发生看门狗定时器复位时, 所有 DMA 寄存器会被强制设为它们的复位状态 DS61117E_CN 第 页 2010 Microchip Technology Inc.

55 31.7 相关应用笔记 第 31 章 DMA 控制器 本节列出了与手册本章内容相关的应用笔记 这些应用笔记可能并不是专为 PIC32MX 器件系列而编写的, 但其概念是相近的, 通过适当修改并受到一定限制即可使用 当前与直接存储器访问 (DMA) 模块相关的应用笔记有 : 标题 应用笔记编号 目前没有相关的应用笔记 N/A 31 DMA 控制器 注 : 如需获取更多 PIC32MX 系列器件的应用笔记和代码示例, 请访问 Microchip 网站 ( Microchip Technology Inc. DS61117E_CN 第 页

56 PIC32MX 系列参考手册 31.8 版本历史 版本 A (2007 年 10 月 ) 这是本文档的初始版本 版本 B (2007 年 10 月 ) 更新了文档 ( 删除了 机密 状态 ) 版本 C (2008 年 4 月 ) 将状态修改为 初稿 ; 将 U-0 修改为 r-x ; 修改了表 31-1 ; 修改了表 31-2(DCHxCON,bit 3), 删除了 注 1 ; 修改了寄存器 和 ; 修改了第 31.3 节和第 节 ; 修改了例 和 31-8 ; 删除了例 31-2 并对示例进行了重新编号 ; 删除了第 节并对小节进行了重新编号 ; 修改了第 节 版本 D (2008 年 6 月 ) 修改了寄存器 至 的脚注 ; 修改了例 31-8 ; 将保留位从 保持为 更改为 写入 ; 为 ON 位 (DMACON 寄存器 ) 增加了注释 版本 E (2009 年 8 月 ) 该版本引入了一些仅在特定器件上提供的新的位和功能 以下详细介绍了产生的变化 : DMA 寄存器汇总 ( 表 31-1) - 增加了 BUSY BYTO1 BYTO0 WBO BITO CRCTYP 和 CHBUSY 位 - 删除了对 IEC1 IPC9 和 IFS1 寄存器的引用 - 在 DMA 寄存器汇总 中增加了 地址偏移 栏 - 增加了介绍清零 置 1 和取反寄存器的 注 1 注 2 和 注 3 - 增加了关于一些特定位和位范围是否可用取决于器件型号的 注 4 和 注 5 在以下寄存器中增加了介绍清零 置 1 和取反寄存器的注释 : - DMACON ( 寄存器 31-1) - DMASTAT ( 寄存器 31-2) - DMAADDR ( 寄存器 31-3) - DCRCCON ( 寄存器 31-4) - DCRCDATA ( 寄存器 31-5) - DCRCXOR ( 寄存器 31-6) - DCHxCON ( 寄存器 31-7) - DCHxECON ( 寄存器 31-8) - DCHxINT ( 寄存器 31-9) - DCHxSSA ( 寄存器 31-10) - DCHxDSA ( 寄存器 31-11) - DCHxSSIZ ( 寄存器 31-12) - DCHxDSIZ ( 寄存器 31-13) - DCHSPTR ( 寄存器 31-14) - DCHxDPTR ( 寄存器 31-15) - DCHxCSIZ ( 寄存器 31-16) - DCHxCPTR ( 寄存器 31-17) - DCHxDAT ( 寄存器 31-18) 删除了以下寄存器 :IFS1 IEC1 和 IPC9 在寄存器 31-1 中增加了 BUSY 位 (DMACON<11>) 以及关于 SIDL 和 BUSY 位可用性的 注 1 DS61117E_CN 第 页 2010 Microchip Technology Inc.

57 版本 E (2009 年 8 月 )( 续 ) 第 31 章 DMA 控制器 更新了寄存器 31-2 中的 DMACH 位 (DMASTAT<2:0>), 并增加了关于所有位的可用性的 注 2 在寄存器 31-4 中增加了 BYTO1 BYTO0 WBO BITO 和 CRCTYP 位, 更新了 PLEN<4:0> 和 CRCCH<2:0> 位, 并增加了 注 1 和 注 2 更新了寄存器 31-5 中的 DCRCDATA 位, 并增加了 注 1 更新了寄存器 31-6 中的 DCRCXOR 位, 并增加了 注 1 在寄存器 31-7 中增加了 CHBUSY 位 (DCHxCON<15>) 和 注 1 更新了寄存器 中的 DCHxSSIZ 位, 并增加了 注 1 更新了寄存器 中的 DCHxDSIZ 位, 并增加了 注 1 更新了寄存器 中的 DCHxSPTR 位, 并增加了 注 2 更新了寄存器 中的 DCHxDPTR 位, 并增加了 注 1 更新了寄存器 中的 DCHxCSIZ 位, 并增加了 注 1 更新了寄存器 中的 DCHxCPTR 位, 并增加了 注 2 更新了第 节 通道链模式工作原理 中最低优先级通道编号, 并为第四段增加了相关注释 在第 节 暂停传输 和第 节 DMA 暂停 中增加了关于暂停 DMA 模块的信息和相关注释 更新了第 节 特殊功能模块 (SFM) 模式, 以区分 16 位和 32 位 CRC 增加了第 节 计算 IP 头校验和 在第 31.4 节 中断 中增加了 DMA 通道中断标志 允许位和优先级位 在表 31-6 中增加了 DMA 中断向量 (DMA4-DMA7) 更新了第 节 空闲模式下的 DMA 操作 31 DMA 控制器 2010 Microchip Technology Inc. DS61117E_CN 第 页

58 PIC32MX 系列参考手册 注 : DS61117E_CN 第 页 2010 Microchip Technology Inc.

59 请注意以下有关 Microchip 器件代码保护功能的要点 : Microchip 的产品均达到 Microchip 数据手册中所述的技术指标 Microchip 确信 : 在正常使用的情况下, Microchip 系列产品是当今市场上同类产品中最安全的产品之一 目前, 仍存在着恶意 甚至是非法破坏代码保护功能的行为 就我们所知, 所有这些行为都不是以 Microchip 数据手册中规定的操作规范来使用 Microchip 产品的 这样做的人极可能侵犯了知识产权 Microchip 愿与那些注重代码完整性的客户合作 Microchip 或任何其他半导体厂商均无法保证其代码的安全性 代码保护并不意味着我们保证产品是 牢不可破 的 代码保护功能处于持续发展中 Microchip 承诺将不断改进产品的代码保护功能 任何试图破坏 Microchip 代码保护功能的行为均可视为违反了 数字器件千年版权法案 (Digital Millennium Copyright Act) 如果这种行为导致他人在未经授权的情况下, 能访问您的软件或其他受版权保护的成果, 您有权依据该法案提起诉讼, 从而制止这种行为 提供本文档的中文版本仅为了便于理解 请勿忽视文档中包含的英文部分, 因为其中提供了有关 Microchip 产品性能和使用情况的有用信息 Microchip Technology Inc. 及其分公司和相关公司 各级主管与员工及事务代理机构对译文中可能存在的任何差错不承担任何责任 建议参考 Microchip Technology Inc. 的英文原版文档 本出版物中所述的器件应用信息及其他类似内容仅为您提供便利, 它们可能由更新之信息所替代 确保应用符合技术规范, 是您自身应负的责任 Microchip 对这些信息不作任何明示或暗示 书面或口头 法定或其他形式的声明或担保, 包括但不限于针对其使用情况 质量 性能 适销性或特定用途的适用性的声明或担保 Microchip 对因这些信息及使用这些信息而引起的后果不承担任何责任 如果将 Microchip 器件用于生命维持和 / 或生命安全应用, 一切风险由买方自负 买方同意在由此引发任何一切伤害 索赔 诉讼或费用时, 会维护和保障 Microchip 免于承担法律责任, 并加以赔偿 在 Microchip 知识产权保护下, 不得暗中或以其他方式转让任何许可证 商标 Microchip 的名称和徽标组合 Microchip 徽标 dspic KEELOQ KEELOQ 徽标 MPLAB PIC PICmicro PICSTART PIC 32 徽标 rfpic 和 UNI/O 均为 Microchip Technology Inc. 在美国和其他国家或地区的注册商标 FilterLab Hampshire HI-TECH C Linear Active Thermistor MXDEV MXLAB SEEVAL 和 The Embedded Control Solutions Company 均为 Microchip Technology Inc. 在美国的注册商标 Analog-for-the-Digital Age Application Maestro CodeGuard dspicdem dspicdem.net dspicworks dsspeak ECAN ECONOMONITOR FanSense HI-TIDE In-Circuit Serial Programming ICSP Mindi MiWi MPASM MPLAB Certified 徽标 MPLIB MPLINK mtouch Omniscient Code Generation PICC PICC-18 PICDEM PICDEM.net PICkit PICtail REAL ICE rflab Select Mode Total Endurance TSHARC UniWinDriver WiperLock 和 ZENA 均为 Microchip Technology Inc. 在美国和其他国家或地区的商标 SQTP 是 Microchip Technology Inc. 在美国的服务标记 在此提及的所有其他商标均为各持有公司所有 2010, Microchip Technology Inc. 版权所有 ISBN: Microchip 位于美国亚利桑那州 Chandler 和 Tempe 与位于俄勒冈州 Gresham 的全球总部 设计和晶圆生产厂及位于美国加利福尼亚州和印度的设计中心均通过了 ISO/TS-16949:2002 认证 公司在 PIC MCU 与 dspic DSC KEELOQ 跳码器件 串行 EEPROM 单片机外设 非易失性存储器和模拟产品方面的质量体系流程均符合 ISO/TS :2002 此外, Microchip 在开发系统的设计和生产方面的质量体系也已通过了 ISO 9001:2000 认证 2010 Microchip Technology Inc. DS61117E_CN 第 页

61117e_cn.book

61117e_cn.book 31 第 31 章 DMA 控制器 DMA 控制器 目录 本章包括下列主题 : 31.1 简介... 31-2 31.2 状态和控制寄存器... 31-6 31.3 工作模式... 31-29 31.4 通道控制... 31-40 31.5 中断... 31-44 31.6 节能和调试模式下的操作... 31-46 31.7 各种复位的影响... 31-46 31.8 相关应用笔记... 31-47

More information

<4D F736F F D20B5DAC8FDCBC4D5C2D7F7D2B5B4F0B0B82E646F63>

<4D F736F F D20B5DAC8FDCBC4D5C2D7F7D2B5B4F0B0B82E646F63> 第三章 Q3 1 1. 省略了 I/O 操作的复杂逻辑, 易实现, 耗费低 ; 2. 可以利用丰富的内存寻址模式实现灵活的 I/O 操作 Q3 2 假设存储单元 ds1 处寄存器地址为 0x2000, 代码如下 #define ds1 0x2000 while ( *ds1 == 0 ) ; Q3 3 假设设备 (dev1) 中有两个寄存器 ds1 和 dd1,dev1 的地址为 0x1000,ds1

More information

untitled

untitled FBC0409 V1.0 1.0 05.06.22 SIA 2005 SIA SIA SIA SIA SIA 114 86-24-23970133 HTTP://WWW.SIA.CN YANG@SIA.CN 2 ...5...5...6 PIN...6...7 1 CPU...8 2...8 4...8 5 DMA...9 7....9 8...9 9...10 A...10 B...10...11.

More information

Chapter #

Chapter # 第三章 TCP/IP 协议栈 本章目标 通过本章的学习, 您应该掌握以下内容 : 掌握 TCP/IP 分层模型 掌握 IP 协议原理 理解 OSI 和 TCP/IP 模型的区别和联系 TCP/IP 介绍 主机 主机 Internet TCP/IP 早期的协议族 全球范围 TCP/IP 协议栈 7 6 5 4 3 应用层表示层会话层传输层网络层 应用层 主机到主机层 Internet 层 2 1 数据链路层

More information

P4i45GL_GV-R50-CN.p65

P4i45GL_GV-R50-CN.p65 1 Main Advanced Security Power Boot Exit System Date System Time Floppy Drives IDE Devices BIOS Version Processor Type Processor Speed Cache Size Microcode Update Total Memory DDR1 DDR2 Dec 18 2003 Thu

More information

1 CPU

1 CPU 2000 Tel 82316285 82317634 Mail liuxd@buaa.edu.cn 1 CPU 2 CPU 7 72 A B 85 15 3 1/2 M301 2~17 : 3/4 1/2 323 IBM PC 1. 2. 3. 1. 2. 3. 1.1 Hardware Software 1.2 M3 M2 M1 1.2 M3 M1 M2 M2 M1 M1 M1 1.2 M3 M1

More information

61115e_cn.book

61115e_cn.book 第 3 章存储器构成 目录 本章包括下列主题 : 3.1 简介... 3-2 3.2 控制寄存器... 3-2 3.3 PIC32MX 存储器布局... 3-13 3.4 PIC32MX 地址映射... 3-15 3.5 总线矩阵... 3-29 3.6 I/O 引脚控制... 3-33 3.7 节能和调试模式下的操作... 3-33 3.8 代码示例... 3-34 3.9 设计技巧... 3-35

More information

untitled

untitled MODBUS 1 MODBUS...1 1...4 1.1...4 1.2...4 1.3...4 1.4... 2...5 2.1...5 2.2...5 3...6 3.1 OPENSERIAL...6 3.2 CLOSESERIAL...8 3.3 RDMULTIBIT...8 3.4 RDMULTIWORD...9 3.5 WRTONEBIT...11 3.6 WRTONEWORD...12

More information

第十四章 STC单片机比较器原理及实现

第十四章 STC单片机比较器原理及实现 第 14 章 STC 单片机比较器 原理及实现 何宾 2015.02 1 本章主要内容 STC 单片机比较器结构 STC 单片机比较器寄存器组 STC 单片机比较器应用 2 STC 单片机比较器结构 STC15W 系列单片机内置了模拟比较器 对于 STC15W201S STC15W404S, 以及 STC15W1K16S 系 列单片机的比较器内部结构 3 STC 单片机比较器结构 S T C 15W

More information

Windows RTEMS 1 Danilliu MMI TCP/IP QEMU i386 QEMU ARM POWERPC i386 IPC PC104 uc/os-ii uc/os MMI TCP/IP i386 PORT Linux ecos Linux ecos ecos eco

Windows RTEMS 1 Danilliu MMI TCP/IP QEMU i386 QEMU ARM POWERPC i386 IPC PC104 uc/os-ii uc/os MMI TCP/IP i386 PORT Linux ecos Linux ecos ecos eco Windows RTEMS 1 Danilliu MMI TCP/IP 80486 QEMU i386 QEMU ARM POWERPC i386 IPC PC104 uc/os-ii uc/os MMI TCP/IP i386 PORT Linux ecos Linux ecos ecos ecos Email www.rtems.com RTEMS ecos RTEMS RTEMS Windows

More information

bingdian001.com

bingdian001.com TSM12M TSM12 STM8L152C6, STM8L152R8 MSP430F5325 whym1987@126.com! /******************************************************************************* * : TSM12.c * : * : 2013/10/21 * : TSM12, STM8L f(sysclk)

More information

ICD ICD ICD ICD ICD

ICD ICD ICD ICD ICD MPLAB ICD2 MPLAB ICD2 PIC MPLAB-IDE V6.0 ICD2 usb PC RS232 MPLAB IDE PC PC 2.0 5.5V LED EEDATA MPLAB ICD2 Microchip MPLAB-IDE v6.0 Windows 95/98 Windows NT Windows 2000 www.elc-mcu.com 1 ICD2...4 1.1 ICD2...4

More information

Microsoft Word - MSP430 Launchpad 指导书.docx

Microsoft Word - MSP430 Launchpad 指导书.docx Contents 3... 9... 14 MSP430 LAUNCHPAD 指导书 3 第一部分第一个工程 New Project File > New > CCS Project Project name: ButtonLED Device>Family: MSP430 Variant: MSP430G2553 Project templates and examples : Empty Project

More information

学习MSP430单片机推荐参考书

学习MSP430单片机推荐参考书 MSP430 16 MSP430 C MSP430 C MSP430 FLASH 16 1 CPU 16 ALU 16 PC SP SR R4~R15 2 3 00-FFH 100-1FFH 4 5 1 2 51 24 27 6 1 2 3 4 5 6 4 12 SR SP SR CPU SR CPU C Z N GIE CPUOff CPU OscOff SCG0 SCG1 CPU EXIT SP

More information

Section 9. Watchdog, Deadman, and Power-up Timers

Section 9. Watchdog, Deadman, and Power-up Timers 第 9 章看门狗定时器 程序监控定时器和上电延时定时器 目录 本章包括下列主题 : 9.1 简介... 9-2 9.2 看门狗定时器 程序监控定时器和上电延时定时器控制寄存器... 9-4 9.3 看门狗定时器工作原理... 9-13 9.4 DMT 工作原理... 9-17 9.5 中断和复位产生... 9-19 9.6 I/O 引脚... 9-22 9.7 调试和节能模式下的操作... 9-22

More information

第 9 章看门狗定时器 程序监控定时器和上电延时定时器 目录 本章包括下列主题 : 9.1 简介 看门狗定时器 程序监控定时器和上电延时定时器控制寄存器 看门狗定时器工作原理 DMT 工作原理 中断和复位产生

第 9 章看门狗定时器 程序监控定时器和上电延时定时器 目录 本章包括下列主题 : 9.1 简介 看门狗定时器 程序监控定时器和上电延时定时器控制寄存器 看门狗定时器工作原理 DMT 工作原理 中断和复位产生 第 9 章看门狗定时器 程序监控定时器和上电延时定时器 目录 本章包括下列主题 : 9.1 简介... 9-2 9.2 看门狗定时器 程序监控定时器和上电延时定时器控制寄存器... 9-4 9.3 看门狗定时器工作原理... 9-12 9.4 DMT 工作原理... 9-16 9.5 中断和复位产生... 9-18 9.6 I/O 引脚... 9-21 9.7 调试和节能模式下的操作... 9-21

More information

775i65PE_BIOS_CN.p65

775i65PE_BIOS_CN.p65 1 Main H/W Monitor Boot Security Exit System Overview System Time System Date [ 14:00:09] [Wed 10/20/2004] BIOS Version : 775i65PE BIOS P1.00 Processor Type : Intel (R) CPU 3.20 GHz Processor Speed : 3200

More information

1 TPIS TPIS 2 2

1 TPIS TPIS 2 2 1 1 TPIS TPIS 2 2 1. 2. 3. 4. 3 3 4 5 4 TPIS TPIS 6 5 350 Mark Coil F3/F6 350 M 150 M 25 M 7.12M 8 M F3 F6 F4 F7 F8 8M AA 7 350 28V 5V IC HCPL2731 0.5mA 6 8 (TPIS) TPIS 9 7 IC AT89C2051 AT89C2051 CMOS8

More information

Microsoft Word - AN3259C

Microsoft Word - AN3259C www.maxim-ic.com.cn 应用笔记 3259 DS31256 Envoy - 寄存器转储列程 概述本应用笔记提供了将 DS31256 的寄存器 排队程序 描述符和 FIFO RAM 的内容转储到一个文件的程序代码 这些数据在 DS31256 无法正常工作时非常关键, 为进一步的研究和调试提供了重要信息 例如, 寄存器数据经过转储后可以显示每个 DS31256 寄存器的设置 为了保证正确地设置器件,

More information

PowerPoint 演示文稿

PowerPoint 演示文稿 STC 单片机比较器原理及实现 主讲 : 何宾 Email:hebin@mail.buct.edu.cn 2016.03 STC 单片机比较器结构 STC15W 系列单片机内置了模拟比较器 对于 STC15W201S STC15W404S, 以及 STC15W1K16S 系列单片机的比较器内部结 构 STC 单片机比较器结构 从图中可以看出, 比较器正端输入 CMP+ 的输入电压来自单片机的 P5.5

More information

<4D6963726F736F667420576F7264202D20C8EDBCFEB9A4B3CCCFEEC4BFD0E8C7F3B5F7D1D0B1A8B8E6B7B6B1BE>

<4D6963726F736F667420576F7264202D20C8EDBCFEB9A4B3CCCFEEC4BFD0E8C7F3B5F7D1D0B1A8B8E6B7B6B1BE> 机 遇 创 造 发 展 科 技 造 就 成 功 软 件 工 程 项 目 需 求 调 研 报 告 ( 范 本 ) ( 调 研 时 间 :0000-00-00 至 0000-00-00) 深 圳 市 易 讯 诚 信 息 技 术 有 限 公 司 调 研 报 告 简 要 说 明 XXX 公 司 软 件 工 程 项 目 需 求 调 研 报 告 是 根 据 XXX 公 司 现 有 管 理 体 系 整 理 而 成,

More information

1 Project New Project 1 2 Windows 1 3 N C test Windows uv2 KEIL uvision2 1 2 New Project Ateml AT89C AT89C51 3 KEIL Demo C C File

1 Project New Project 1 2 Windows 1 3 N C test Windows uv2 KEIL uvision2 1 2 New Project Ateml AT89C AT89C51 3 KEIL Demo C C File 51 C 51 51 C C C C C C * 2003-3-30 pnzwzw@163.com C C C C KEIL uvision2 MCS51 PLM C VC++ 51 KEIL51 KEIL51 KEIL51 KEIL 2K DEMO C KEIL KEIL51 P 1 1 1 1-1 - 1 Project New Project 1 2 Windows 1 3 N C test

More information

6 C51 ANSI C Turbo C C51 Turbo C C51 C51 C51 C51 C51 C51 C51 C51 C C C51 C51 ANSI C MCS-51 C51 ANSI C C C51 bit Byte bit sbit

6 C51 ANSI C Turbo C C51 Turbo C C51 C51 C51 C51 C51 C51 C51 C51 C C C51 C51 ANSI C MCS-51 C51 ANSI C C C51 bit Byte bit sbit 6 C51 ANSI C Turbo C C51 Turbo C C51 C51 C51 C51 C51 C51 C51 C51 C51 6.1 C51 6.1.1 C51 C51 ANSI C MCS-51 C51 ANSI C C51 6.1 6.1 C51 bit Byte bit sbit 1 0 1 unsigned char 8 1 0 255 Signed char 8 11 128

More information

穨control.PDF

穨control.PDF TCP congestion control yhmiu Outline Congestion control algorithms Purpose of RFC2581 Purpose of RFC2582 TCP SS-DR 1998 TCP Extensions RFC1072 1988 SACK RFC2018 1996 FACK 1996 Rate-Halving 1997 OldTahoe

More information

P4V88+_BIOS_CN.p65

P4V88+_BIOS_CN.p65 1 Main H/W Monitor Boot Security Exit System Overview System Time System Date [ 17:00:09] [Wed 12/22/2004] BIOS Version : P4V88+ BIOS P1.00 Processor Type : Intel (R) Pentium (R) 4 CPU 2.40 GHz Processor

More information

PCM-3386用户手册.doc

PCM-3386用户手册.doc PCM-3386 BBPC-4x86 10/100M PC/104 (Lanry technology Co. Ltd. Zhuhai) 38 1012836 (Address: Room 1012,Linhai Building,No. 38,west of Shihua Road,Zhuhai City,Guangdong Province,China) (post code)519015 (phone)0756-3366659

More information

目录

目录 ALTERA_CPLD... 3 11SY_03091... 3 12SY_03091...4....5 21 5 22...8 23..10 24..12 25..13..17 3 1EPM7128SLC.......17 3 2EPM7032SLC.......18 33HT46R47......19..20 41..20 42. 43..26..27 5151DEMO I/O...27 52A/D89C51...28

More information

Microsoft Word - mcu-an z-10.doc

Microsoft Word - mcu-an z-10.doc 富士通微电子 ( 上海 ) 有限公司应用笔记 MCU-AN-500007-Z-10 F²MC-8FX 家族 8 位微控制器 MB95200H/210H 系列 外部中断 应用笔记 变更履历 变更履历 日期作者修正记录 2008-03-20 Levi Zhang V1.0, 第一版 本手册共 22 页 1. 本文档记载的产品信息及规格说明如有变动, 恕不预先通知 如需最新产品信息和 / 或规格说明, 联系富士通销售代表或富士通授权分销商

More information

安全防范

安全防范 8989 Be Right TM Sigma 900 5/03 2003 ...1...4...8 1.1...8 1.2...9 1.2.1...9 1.2.2...12 1.3...12 1.4...12 1.4.1...12 1.4.2...13 1.4.3...14 1.5...15 1.6...16 1.7...16 1.7.1...17 1.7.2...17 1.7.3...18 1.7.4

More information

Section1_16bit Arc.ppt

Section1_16bit Arc.ppt 16-bit Elite Program 2009 Summer Section-1 Microchip 16-bit 2005 Microchip Technology Incorporated. All Rights Reserved. Slide 1 MCU CPU (NOP),, (Data Memory), I/O CPU w. ALU/Working Reg. Data Mem. Data

More information

CAUTION RISK OF ELECTRIC SHOCK DO NOT OPEN 2

CAUTION RISK OF ELECTRIC SHOCK DO NOT OPEN 2 WV-CU950/G WV-CU650/G CAUTION RISK OF ELECTRIC SHOCK DO NOT OPEN 2 S3125A 3 4 5 6 7 8 9 #9 $0 #8 $1 $2 $3 r q w e t $4 i u!0 y WV-CU950!1!3!4!7!6!5!8 @0!9 @3 @2 @1!2 o ALARM ACK ALM RESET ALM SUSPEND ALM

More information

Bus Hound 5

Bus Hound 5 Bus Hound 5.0 ( 1.0) 21IC 2007 7 BusHound perisoft PC hound Bus Hound 6.0 5.0 5.0 Bus Hound, IDE SCSI USB 1394 DVD Windows9X,WindowsMe,NT4.0,2000,2003,XP XP IRP Html ZIP SCSI sense USB Bus Hound 1 Bus

More information

Microsoft Word - IRFWX_A051_C_SyncMOS_with_STC_APN_SC_.doc

Microsoft Word - IRFWX_A051_C_SyncMOS_with_STC_APN_SC_.doc EEPROM 应用说明 1 适用产品 :SM59D03G2 SM59D04G2 series 2 应用范围 : 针对需使用 EEPORM 功能替换 STC 89C5X 的应用及汇编语言之范例程序 ( 使用内部扩充内存为暂存区 ) 3 功能说明 : 3.1 本公司上述产品 EEPORM 功能皆可替换 STC89C5X, 仅需对特殊功能缓存器定义 ( 详见表 1) 及 ISP 命令定义 ( 详见表 2)

More information

, 7, Windows,,,, : ,,,, ;,, ( CIP) /,,. : ;, ( 21 ) ISBN : -. TP CIP ( 2005) 1

, 7, Windows,,,, : ,,,, ;,, ( CIP) /,,. : ;, ( 21 ) ISBN : -. TP CIP ( 2005) 1 21 , 7, Windows,,,, : 010-62782989 13501256678 13801310933,,,, ;,, ( CIP) /,,. : ;, 2005. 11 ( 21 ) ISBN 7-81082 - 634-4... - : -. TP316-44 CIP ( 2005) 123583 : : : : 100084 : 010-62776969 : 100044 : 010-51686414

More information

2005.book

2005.book ...4... 4... 7...10... 10... 10... 10... 10... 11... 11 PCC... 11 TB170... 12 /... 12...13... 13 BP150 / BP151 / BP152 / BP155... 14...15... 15... 15... 15... 15... 15... 15... 16 PS465 / PS477... 17 PS692

More information

TX-NR3030_BAS_Cs_ indd

TX-NR3030_BAS_Cs_ indd TX-NR3030 http://www.onkyo.com/manual/txnr3030/adv/cs.html Cs 1 2 3 Speaker Cable 2 HDMI OUT HDMI IN HDMI OUT HDMI OUT HDMI OUT HDMI OUT 1 DIGITAL OPTICAL OUT AUDIO OUT TV 3 1 5 4 6 1 2 3 3 2 2 4 3 2 5

More information

第4章 系统设置

第4章  系统设置 POST 4.1 POST BIOS POST POST POST POST LOGO LOGO POST BIOS POST POST SCSI SCSI BIOS RAID POST RAID RAID RAID BIOS Operating System not Found BIOS T200 2002 BIOS 4.2 BIOS BIOS

More information

AN INTRODUCTION TO PHYSICAL COMPUTING USING ARDUINO, GRASSHOPPER, AND FIREFLY (CHINESE EDITION ) INTERACTIVE PROTOTYPING

AN INTRODUCTION TO PHYSICAL COMPUTING USING ARDUINO, GRASSHOPPER, AND FIREFLY (CHINESE EDITION ) INTERACTIVE PROTOTYPING AN INTRODUCTION TO PHYSICAL COMPUTING USING ARDUINO, GRASSHOPPER, AND FIREFLY (CHINESE EDITION ) INTERACTIVE PROTOTYPING 前言 - Andrew Payne 目录 1 2 Firefly Basics 3 COMPONENT TOOLBOX 目录 4 RESOURCES 致谢

More information

CC213

CC213 : (Ken-Yi Lee), E-mail: feis.tw@gmail.com 49 [P.51] C/C++ [P.52] [P.53] [P.55] (int) [P.57] (float/double) [P.58] printf scanf [P.59] [P.61] ( / ) [P.62] (char) [P.65] : +-*/% [P.67] : = [P.68] : ,

More information

Microsoft Word - mcu-an z-11.doc

Microsoft Word - mcu-an z-11.doc 富士通微电子 ( 上海 ) 有限公司应用笔记 MCU-AN-500007-Z-11 F²MC-8FX 家族 8 位微控制器 MB95200H/210H 系列 外部中断 应用笔记 外部中断 V1.1 变更履历 变更履历 日期作者修正记录 2008-03-20 Levi Zhang V1.0, 第一版 2008-07-18 Levi.Zhang V1.1, 在第 6 章更多信息中添加 URL; 更新了一些样本程式

More information

DPJJX1.DOC

DPJJX1.DOC 8051 111 2K 1 2 3 ' ' 1 CPU RAM ROM / A/D D/A PC CPU 40 68 10 20 8 51 PIII 8051 2 MCS51 8051 8031 89C51 8051 8031 89C51? MCS51 INTEL INTEL 8031 8051 8751 8032 8052 8752 8051 8051 8051 MCS51 8031 8031

More information

S3C244A 中文 Datasheet CMD 路径编程 (1) 写命令参数 32 位到 SDICmdArg (2) 决定命令类型并通过设置 SDICmdCon 开始命令传输 (3) 当 SDICmdSta 的特殊标志被置位, 确认 SDICMD 路径操作的结束 (4) 如果命令类型

S3C244A 中文 Datasheet CMD 路径编程 (1) 写命令参数 32 位到 SDICmdArg (2) 决定命令类型并通过设置 SDICmdCon 开始命令传输 (3) 当 SDICmdSta 的特殊标志被置位, 确认 SDICMD 路径操作的结束 (4) 如果命令类型 S3C244A 中文 Datasheet 19.1 特点 - 兼容 SD 存储卡规格 (1. 版本 ) 或 MMC 规格 (2.11 版本 ) - 兼容 SDIO 卡规格 (1. 版本 ) - 用于数据接收发送的 16 字 (64 字节 )FIFO -4 位的命令寄存器 -136 位的响应寄存器 -8 位的预定标器逻辑 ( 频率 = 系统时钟 /(P+1)) - 通常模式或 DMA 传输模式 ( 字节

More information

Microsoft Word - T12_T13_AD_PECÀý³Ì½éÉÜ.doc

Microsoft Word - T12_T13_AD_PECÀý³Ì½éÉÜ.doc 样例程序 : T12 + T13 + AD + PEC 1. 简介本程序实现功能如下 : 配置 CCU6 工作于三相输出模式 使用通道 0 比较匹配中断触发 T13 内部硬件直接实现 T13 工作于 Single shot 模式, 当周期中断时, 硬件触发 ADC (Injection mode) 转换完成以后, 使用 PEC 将存放于 ADC_DAT2 中的转换结果传送到用户指定的数组中 PEC

More information

/ / (FC 3)...

/ / (FC 3)... Modbus/TCP 1.0 1999 3 29 Andy Swales Schneider aswales@modicon.com ... 2 1.... 3 2.... 3 2.1.. 3 2.2..4 2.3..4 2.4... 5 3.... 5 3.1 0... 5 3.2 1... 5 3.3 2... 6 3.4 / /... 7 4.... 7 5.... 8 5.1 0... 9

More information

FM1935X智能非接触读写器芯片

FM1935X智能非接触读写器芯片 FM3316/3315 MCU 2017.06 FM3316/3315 MCU 2.21 (http://www.fmsh.com/) FM3316/3315 MCU 2.22 ... 3 1... 4 2... 5 2.1... 5 2.2... 5 2.3... 6 2.3.1... 6 2.3.2... 6 2.4... 9 2.5... 10 2.5.1 LQFP64... 10 2.5.2

More information

C/C++ - 函数

C/C++ - 函数 C/C++ Table of contents 1. 2. 3. & 4. 5. 1 2 3 # include # define SIZE 50 int main ( void ) { float list [ SIZE ]; readlist (list, SIZE ); sort (list, SIZE ); average (list, SIZE ); bargragh

More information

50-FB23-24_BES_V_ z1_ b

50-FB23-24_BES_V_ z1_ b CPX CPX-FB23, CPX-FB23-24 CC-Link 1411b [8042126] CPX-FB23, CPX-FB23-24 P.BE-CPX-FB23-24-ZH CC-Link Mitsubishi TORX : : : 1. 2 Festo P.BE-CPX-FB23-24-ZH 1411b CPX-FB23, CPX-FB23-24 CPX-FB23, CPX-FB23-24

More information

《计算机应用基础》学习材料(讲义)

《计算机应用基础》学习材料(讲义) 计 算 机 应 用 基 础 学 习 材 料 ( 讲 义 ) Fundamentals of Computer Application 2014-3-22 JIANGSU OPEN UNIVERSITY 第 二 学 习 周 计 算 机 基 础 知 识 ( 一 ) 导 学 在 本 学 习 周, 我 们 主 要 的 任 务 是 认 识 计 算 机 你 将 知 道 计 算 机 是 什 么 时 候 产 生 的,

More information

P4VM800_BIOS_CN.p65

P4VM800_BIOS_CN.p65 1 Main H/W Monitor Boot Security Exit System Overview System Time System Date [ 17:00:09] [Fri 02/25/2005] BIOS Version : P4VM800 BIOS P1.00 Processor Type : Intel (R) Pentium (R) 4 CPU 2.40 GHz Processor

More information

Microsoft Word - ~ doc

Microsoft Word - ~ doc EEPROM 功能使用方法 1 适用产品 : 1.1 SM39R16A2/ SM39R12A2/ SM39R08A2 1.2 SM39R4051/ SM39R2051 1.3 SM39R04G1/ SM39R02G1 2 EEPROM 功能概述 : 2.1 使用 code flash 仿真为 Internal EEPROM, 在程序执行时, 可将 code flash 作为 data flash 储存数据使用

More information

IEC 传输帧格式

IEC 传输帧格式 IEC 60870-5-1 GB GB/T XXXXX XXXX idt IEC 60870-5-1:1990 Telecontrol Equipment and Systems Part 5:Transmission Protocol Section 1: Transmission frame formats ( ) 1998.6.28 2000.2.10 2000.5.7 200x-xx-xx

More information

ARP ICMP

ARP ICMP ARP ICMP 2 9-1 ARP 9-2 ARP 9-3 ARP 9-4 ICMP 9-5 ICMP 9-6 ICMP 9-7 ICMP 3 ARP ICMP TCP / IP, IP ARP ICMP 3 IP, ARP ICMP IP ARP ICMP 2, 4 9-1 ARP, MAC, IP IP, MAC ARP Address Resolution Protocol, OSI ARP,,

More information

VHDL(Statements) (Sequential Statement) (Concurrent Statement) VHDL (Architecture)VHDL (PROCESS)(Sub-program) 2

VHDL(Statements) (Sequential Statement) (Concurrent Statement) VHDL (Architecture)VHDL (PROCESS)(Sub-program) 2 VHDL (Statements) VHDL(Statements) (Sequential Statement) (Concurrent Statement) VHDL (Architecture)VHDL (PROCESS)(Sub-program) 2 (Assignment Statement) (Signal Assignment Statement) (Variable Assignment

More information

C++ 程序设计 告别 OJ1 - 参考答案 MASTER 2019 年 5 月 3 日 1

C++ 程序设计 告别 OJ1 - 参考答案 MASTER 2019 年 5 月 3 日 1 C++ 程序设计 告别 OJ1 - 参考答案 MASTER 2019 年 月 3 日 1 1 INPUTOUTPUT 1 InputOutput 题目描述 用 cin 输入你的姓名 ( 没有空格 ) 和年龄 ( 整数 ), 并用 cout 输出 输入输出符合以下范例 输入 master 999 输出 I am master, 999 years old. 注意 "," 后面有一个空格,"." 结束,

More information

2/80 2

2/80 2 2/80 2 3/80 3 DSP2400 is a high performance Digital Signal Processor (DSP) designed and developed by author s laboratory. It is designed for multimedia and wireless application. To develop application

More information

行业

行业 PCL-1800 PCL-1800 1.1...2 1.1.1 1K FIFO...2 1.1.2...2 1.1.3 16...3 1.1.4...3 1.1.5...3 1.1.6...3 1.2...3 1.3...4 1.4...5 2.1...5 2.2...6 2.2.1...6 2.2.2...6 2.2.3 D/A...7 2.2.4...7 2.2.5 TRIG0 GATE0...8

More information

untitled

untitled I G B T S310 220V 0.4~1.5KW (0.88~2.9KVA) : : 65-C : 0510-85227555() : 0510-85227556 http://www.taian-technology.com VER:06 2011.7 S310 0.1 0.2 1.1 1.1.1 1.1.2 1.1.3 1.1.4 1.1.5 3.1 3.2 3.3 3.3.1 3.3.2

More information

Go构建日请求千亿微服务最佳实践的副本

Go构建日请求千亿微服务最佳实践的副本 Go 构建 请求千亿级微服务实践 项超 100+ 700 万 3000 亿 Goroutine & Channel Goroutine Channel Goroutine func gen() chan int { out := make(chan int) go func(){ for i:=0; i

More information

概述

概述 OPC Version 1.6 build 0910 KOSRDK Knight OPC Server Rapid Development Toolkits Knight Workgroup, eehoo Technology 2002-9 OPC 1...4 2 API...5 2.1...5 2.2...5 2.2.1 KOS_Init...5 2.2.2 KOS_InitB...5 2.2.3

More information

(Microsoft Word - Motion Program \270\305\264\272\276\363 \307\245\301\366 \271\327 \270\361\302\367.doc)

(Microsoft Word - Motion Program \270\305\264\272\276\363 \307\245\301\366 \271\327 \270\361\302\367.doc) : TBFAT-G5MP-MN004-11 1 GX Series PLC Program Manual 2 GX Series PLC Program Manual Contents Contents...3 1... 1-1 1.1... 1-2 1.2... 1-3 1.2.1... 1-3 1.2.2... 1-4 1.2.3... 1-4 1.2.4... 1-6 1.3... 1-7 1.3.1...

More information

ATMEL AT90S8515 AVR CPU AVR AVR AVR ATMEL RISC 32 8 r0 r X Y Z R0 R1 R2 R13 R14 R15 R16 R17 R26 R27 R28 R29 R30 R31 0x00 0x

ATMEL AT90S8515 AVR CPU AVR AVR AVR ATMEL RISC 32 8 r0 r X Y Z R0 R1 R2 R13 R14 R15 R16 R17 R26 R27 R28 R29 R30 R31 0x00 0x 115 AVR W.V. Awdrey ATMEL AVR PIC AVR PIC AVR RISC AVR PIC AVR AVR AVR AVR AVR ATtiny15 AVR AVR AVR RAM ROM 121 116 122 ATMEL AT90S8515 AVR CPU AVR AVR AVR ATMEL RISC 32 8 r0 r31 3 16 X Y Z 6-1 118 7 0

More information

OSI OSI 15% 20% OSI OSI ISO International Standard Organization 1984 OSI Open-data System Interface Reference Model OSI OSI OSI OSI ISO Prototype Prot

OSI OSI 15% 20% OSI OSI ISO International Standard Organization 1984 OSI Open-data System Interface Reference Model OSI OSI OSI OSI ISO Prototype Prot OSI OSI OSI 15% 20% OSI OSI ISO International Standard Organization 1984 OSI Open-data System Interface Reference Model OSI OSI OSI OSI ISO Prototype Protocol OSI OSI OSI OSI OSI O S I 2-1 Application

More information

FM1935X智能非接触读写器芯片

FM1935X智能非接触读写器芯片 FM33A0xx MCU 2017. 05 2.0 1 (http://www.fmsh.com/) 2.0 2 ... 3 1... 4 1.1... 4 1.2... 4 1.3... 5 1.3.1... 5 1.3.2... 5 1.4... 8 1.4.1 LQFP100... 8 1.4.2 LQFP80... 9 1.4.3... 9 2... 15 2.1 LQFP100... 15

More information

Microsoft Word - mcu-an z-10.doc

Microsoft Word - mcu-an z-10.doc 富士通微电子 ( 上海 ) 有限公司应用笔记 MCU-AN-500004-Z-10 F²MC-8FX 家族 8 位微控制器 MB95200H/210H 系列 8/16 位多功能定时器 应用笔记 变更履历 变更履历 日期作者修正记录 2008-03-20 Levi Zhang V1.0, 第一版 本手册共 40 页 1. 本文档记载的产品信息及规格说明如有变动, 恕不预先通知 如需最新产品信息和 /

More information

Microsoft PowerPoint 輸入輸出裝置(I_O Devices).pptx

Microsoft PowerPoint 輸入輸出裝置(I_O Devices).pptx 作業系統 Operating Systems 靜宜大學資訊傳播工程學系 劉國有助理教授 kyliu@pu.edu.tw 輸入 / 輸出裝置 (I/O Devices) 裝置控制器 (Device Controllers) I/O Devices I/O devices can be roughly divided into two categories: Block devices: stores

More information

Microsoft Word - Data IO CS Calculate Method AppNote.doc

Microsoft Word - Data IO CS Calculate Method AppNote.doc Data I/O Checksum Calculation Methods Application Note (Chinese translation follows this English text.) General Description and Scope This document describes common checksum calculation methods for devices

More information

Converting image (bmp/jpg) file into binary format

Converting image (bmp/jpg) file into binary format RAiO Image Tool 操作说明 Version 1.0 July 26, 2016 RAiO Technology Inc. Copyright RAiO Technology Inc. 2013 RAiO TECHNOLOGY INC. www.raio.com.tw Revise History Version Date Description 0.1 September 01, 2014

More information

2 Keil µ vision 2.1 1) Keil µ vision2 V2.34 µ vision3 2) Sino_Keil.exe Keil c:\keil\ 3) JET51 USB PC C:\Keil\ USB PC 4) S-L

2 Keil µ vision 2.1 1) Keil µ vision2 V2.34 µ vision3 2) Sino_Keil.exe   Keil c:\keil\ 3) JET51 USB PC C:\Keil\ USB PC 4) S-L 1 SH88F516 8051 64K FLASH 1024 EEPROM SH88F516 JET51 S-Lab Keil µ vision ISP51 Keil µ vision ISP51 ISP51 PC RS232 MCU SH88F516 SH88F516 1.1 SH88F516 1.1 SH88F516 SH88Fxx: QFP44, DIP40 RAM Flash E2 ADC

More information

128K Flash EPROM 的程序?\(Bank=64K\) 切?

128K Flash EPROM 的程序?\(Bank=64K\) 切? 应用说明 华邦 8 位单片机 (8051 内核 ) 应用说明 华邦 8 位单片机 (8051 内核 ) ANSC-UC08-0007 目录 - 1. 应用说明 :...4 1.1...4 1.2 相关寄存器介绍...4 1.2.1 串行口控制寄存器 (SCON)... 4 1.2.2 串行数据缓冲寄存器 (SBUF)... 5 1.2.3 串行口控制 1 (SCON1)... 5 1.2.4 串行数据接收缓冲

More information

员工签到录

员工签到录 Archivist 2002 Eletech Enterprise Co., Ltd. All Rights Reserved. 1-1 ELETECH VOICE SYSTEMS INC 2 / 2 VLR, 1-1-1 VP894AS-M11 1. VP894AS-M11 1 2. Y 4 3. RJII 4 4. 2-PIN 1 5. VLR 1 2 3 4 ELETECH VOICE SYSTEMS

More information

Microsoft Word - IRFWX-A078_A_SM59R08A2_SM59R16A2_IIC APN_SC_.doc

Microsoft Word - IRFWX-A078_A_SM59R08A2_SM59R16A2_IIC APN_SC_.doc 1 适用产品 :SM59R16A2 / SM59R08A2 2 IIC 使用概述 : 2.1 IIC module 硬件使用 SCL (clock) 及 SDA (data) 两条线 2.2 速度 :SCL 最高可达 400Kbps( 可由软件设定 SFR IICBR[2:0]) 2.3 IIC 可选择 master 或 slave 两种模式 2.4 提供中断 (RXIF, TXIF) 及两组控制地址使用

More information

PowerPoint 演示文稿

PowerPoint 演示文稿 The BitCoin Scripting Language 交易实例 交易结构 "result": { "txid": "921a dd24", "hash": "921a dd24", "version": 1, "size": 226, "locktime": 0, "vin": [ ], "vout": [ ], "blockhash": "0000000000000000002c510d

More information

USB解决方案.ppt

USB解决方案.ppt USB USB? RS232 USB USB HID U modem ADSL cable modem IrDA Silabs USB CP210x USB UART USB RS-232 USB MCU 15 USB 12 FLASH MCU 3 USB MCU USB MCU C8051F32x 10 ADC 1.5%, Vref CPU 25MIPS 8051 16KB Flash -AMUX

More information

K7VT2_QIG_v3

K7VT2_QIG_v3 ............ 1 2 3 4 5 [R] : Enter Raid setup utility 6 Press[A]keytocreateRAID RAID Type: JBOD RAID 0 RAID 1: 2 7 RAID 0 Auto Create Manual Create: 2 RAID 0 Block Size: 16K 32K

More information

A Preliminary Implementation of Linux Kernel Virus and Process Hiding

A Preliminary Implementation of Linux Kernel Virus and Process Hiding 邵 俊 儒 翁 健 吉 妍 年 月 日 学 号 学 号 学 号 摘 要 结 合 课 堂 知 识 我 们 设 计 了 一 个 内 核 病 毒 该 病 毒 同 时 具 有 木 马 的 自 动 性 的 隐 蔽 性 和 蠕 虫 的 感 染 能 力 该 病 毒 获 得 权 限 后 会 自 动 将 自 身 加 入 内 核 模 块 中 劫 持 的 系 统 调 用 并 通 过 简 单 的 方 法 实 现 自 身 的

More information

+00DE _01EN.book

+00DE _01EN.book TCS-NET MODBUS TCS-NET Modbus TCB-IFMB640TLE 1...... 2 2 RS 485... 3 3... 3 4... 4 5... 4 6... 5 7... 6 8... 16 TCS-NET Modbus 1 http://www.modbus-ida.org/ >=3.5 8 8 N*8 ( N = 252.) 16 >= 3.5 Modbus-Master

More information

P4Dual-915GL_BIOS_CN.p65

P4Dual-915GL_BIOS_CN.p65 1 Main H/W Monitor Boot Security Exit System Overview System Time System Date Total Memory DIMM 1 DIMM 2 [ 14:00:09] [Wed 01/05/2005] BIOS Version : P4Dual-915GL BIOS P1.00 Processor Type : Intel (R) Pentium

More information

51 C 51 isp 10 C PCB C C C C KEIL

51 C 51 isp 10   C   PCB C C C C KEIL http://wwwispdowncom 51 C " + + " 51 AT89S51 In-System-Programming ISP 10 io 244 CPLD ATMEL PIC CPLD/FPGA ARM9 ISP http://wwwispdowncom/showoneproductasp?productid=15 51 C C C C C ispdown http://wwwispdowncom

More information

エスポラージュ株式会社 住所 : 東京都江東区大島 東急ドエルアルス大島 HP: ******************* * 关于 Java 测试试题 ******

エスポラージュ株式会社 住所 : 東京都江東区大島 東急ドエルアルス大島 HP:  ******************* * 关于 Java 测试试题 ****** ******************* * 关于 Java 测试试题 ******************* 問 1 运行下面的程序, 选出一个正确的运行结果 public class Sample { public static void main(string[] args) { int[] test = { 1, 2, 3, 4, 5 ; for(int i = 1 ; i System.out.print(test[i]);

More information

Andes Technology PPT Temp

Andes Technology PPT Temp 晶心科技線上技術研討會 AndesCore 便捷的全 C 嵌入式编程 晶心科技市場及技術服務部毛礼杰軟件經理 WWW.ANDESTECH.COM 大纲 系统初始化介绍 异常和中断说明 全 C 语法例子说明 总结 2 CPU 相关特性 1: 中断向量表 系统初始化 (1) 2: 系统寄存器 通常需要用 assembly( 汇编 / 组合 ) 语言来操作 AndesCore 全 C 嵌入式编程 C 扩展语法

More information

Serial ATA ( Silicon Image SiI3114)...2 (1) SATA... 2 (2) B I O S S A T A... 3 (3) RAID BIOS RAID... 5 (4) S A T A... 8 (5) S A T A... 10

Serial ATA ( Silicon Image SiI3114)...2 (1) SATA... 2 (2) B I O S S A T A... 3 (3) RAID BIOS RAID... 5 (4) S A T A... 8 (5) S A T A... 10 Serial ATA ( Silicon Image SiI3114)...2 (1) SATA... 2 (2) B I O S S A T A... 3 (3) RAID BIOS RAID... 5 (4) S A T A... 8 (5) S A T A... 10 Ác Åé å Serial ATA ( Silicon Image SiI3114) S A T A (1) SATA (2)

More information

C语言的应用.PDF

C语言的应用.PDF AVR C 9 1 AVR C IAR C, *.HEX, C,,! C, > 9.1 AVR C MCU,, AVR?! IAR AVR / IAR 32 ALU 1KBytes - 8MBytes (SPM ) 16 MBytes C C *var1, *var2; *var1++ = *--var2; AVR C 9 2 LD R16,-X ST Z+,R16 Auto (local

More information

int *p int a 0x00C7 0x00C7 0x00C int I[2], *pi = &I[0]; pi++; char C[2], *pc = &C[0]; pc++; float F[2], *pf = &F[0]; pf++;

int *p int a 0x00C7 0x00C7 0x00C int I[2], *pi = &I[0]; pi++; char C[2], *pc = &C[0]; pc++; float F[2], *pf = &F[0]; pf++; Memory & Pointer trio@seu.edu.cn 2.1 2.1.1 1 int *p int a 0x00C7 0x00C7 0x00C7 2.1.2 2 int I[2], *pi = &I[0]; pi++; char C[2], *pc = &C[0]; pc++; float F[2], *pf = &F[0]; pf++; 2.1.3 1. 2. 3. 3 int A,

More information

获取 Access Token access_token 是接口的全局唯一票据, 接入方调用各接口时都需使用 access_token 开发者需要进行妥善保存 access_token 的存储至少要保留 512 个字符空间 access_token 的有效期目前为 2 个小时, 需定时刷新, 重复

获取 Access Token access_token 是接口的全局唯一票据, 接入方调用各接口时都需使用 access_token 开发者需要进行妥善保存 access_token 的存储至少要保留 512 个字符空间 access_token 的有效期目前为 2 个小时, 需定时刷新, 重复 获取 Access Token access_token 是接口的全局唯一票据, 接入方调用各接口时都需使用 access_token 开发者需要进行妥善保存 access_token 的存储至少要保留 512 个字符空间 access_token 的有效期目前为 2 个小时, 需定时刷新, 重复 获取将导致上次获取的 access_token 失效 接入方可以使用 AppID 和 AppSecret

More information

BC04 Module_antenna__ doc

BC04 Module_antenna__ doc http://www.infobluetooth.com TEL:+86-23-68798999 Fax: +86-23-68889515 Page 1 of 10 http://www.infobluetooth.com TEL:+86-23-68798999 Fax: +86-23-68889515 Page 2 of 10 http://www.infobluetooth.com TEL:+86-23-68798999

More information

STM32 for sensorless vector control

STM32 for sensorless vector control STM32 PMSM FOC Shanghai, March,2008 Agenda STM32 FOC Clark Parke Circle limitation Mar 08 1 Agenda / Hall PMSM PLL MC_State_observer_param.h Mar 08 2 Agenda MC_Control_param.h / PI Mar 08 3 Plan STM32

More information

BYOD Http Redirect convergence Client (1) 2008R2 NLB( ) (2) NLB Unicast mode switch flooding (arp ) NLB DNS Redirect 1. Round-Robin DNS DNS IP/DNS Cli

BYOD Http Redirect convergence Client (1) 2008R2 NLB( ) (2) NLB Unicast mode switch flooding (arp ) NLB DNS Redirect 1. Round-Robin DNS DNS IP/DNS Cli BYOD 204 2015 GoogleHicloud (Load Balance) Server Load Balance Link Load Balance Server Redirect 1. URL Redirect redirector URL redirect Real Server Client HTTP Real Server Web Client 2 (1) URL Redirect

More information

STC15W4K60S4系列增强型PWM波形发生器应用

STC15W4K60S4系列增强型PWM波形发生器应用 STC15W4K32S4 系列新增 6 通道增强型带死区控制高精度 PWM 波形发生器应用 STC15W4K32S4 系列的单片机集成了一组 ( 各自独立 6 路 ) 增强型的 PWM 波形发生器 PWM 波形发生器内部有一个 15 位的 PWM 计数器供 6 路 PWM 使用, 用户可以设置每路 PWM 的初始电平 另外,PWM 波形发生器为每路 PWM 又设计了两个用于控制波形翻转的计数器 T1/T2,

More information

投 身 基 层 建 功 立 业 政 治 部 主 任 李 继 耐 上 将 的 批 示 ( 照 片 ) 国 防 生, 梦 想 之 翼 能 飞 多 远? 对 清 华 大 学 国 防 生 走 基 层 之 路 的 追 踪 与 思 考 清 华 学 子 国 防 生 岱 天 荣 摄 - 1 -

投 身 基 层 建 功 立 业 政 治 部 主 任 李 继 耐 上 将 的 批 示 ( 照 片 ) 国 防 生, 梦 想 之 翼 能 飞 多 远? 对 清 华 大 学 国 防 生 走 基 层 之 路 的 追 踪 与 思 考 清 华 学 子 国 防 生 岱 天 荣 摄 - 1 - 目 录 总 政 治 部 主 任 李 继 耐 上 将 的 批 示... - 0 - 国 防 生, 梦 想 之 翼 能 飞 多 远? 对 清 华 大 学 国 防 生 走 基 层 之 路 的 追 踪 与 思 考. - 1 - 军 旅 人 生 从 清 华 启 航... - 13 - 厚 德 值 军 营 自 强 续 辉 煌... - 20 - 扎 根 基 层 建 功 立 业... - 23 - 扎 根 基 层

More information

提纲 1 2 OS Examples for 3

提纲 1 2 OS Examples for 3 第 4 章 Threads2( 线程 2) 中国科学技术大学计算机学院 October 28, 2009 提纲 1 2 OS Examples for 3 Outline 1 2 OS Examples for 3 Windows XP Threads I An Windows XP application runs as a seperate process, and each process may

More information

untitled

untitled 8086/8088 CIP /. 2004.8 ISBN 7-03-014239-X.... TP313 CIP 2004 086019 16 100717 http://www.sciencep.com * 2004 8 2004 8 1 5 500 787 1092 1/16 16 1/2 391 000 1 2 ii 1 2 CAI CAI 3 To the teacher To the student

More information

Tel:010-62981668-2930 1

Tel:010-62981668-2930  1 Access 93C46 with SPI function V1.0.0 Jan. 31, 2005 http://www.sunplusmcu.com Tel:010-62981668-2930 http://www.sunplusmcu.com E-mail:mcu@sunplus.com.cn 1 0 0...2 1...3 2...4 2.1...4 2.2...5 3...6 3.1 AT93C46...6

More information

* 4 6 R P r p . 1 2 3 4 7 89bk 6 5 1 2 3 4 5 6 7 8 9 0 bk r bl bm bn^ bo bl br bq bpbo bn bm [ ] [ ] [ ] bp 8 2 4 6 bq p [ ] [SET] br clckbt bs bs bt ck cl. 1 2 1 2+- 3 3 . 1 2 3 4 5 6 7 8 9 bk bl bm

More information

Outline USB Application Requirements Variable Definition Communications Code for VB Code for Keil C Practice

Outline USB Application Requirements Variable Definition Communications Code for VB Code for Keil C Practice 路 ESW 聯 USB Chapter 9 Applications For Windows Outline USB Application Requirements Variable Definition Communications Code for VB Code for Keil C Practice USB I/O USB / USB 3 料 2 1 3 路 USB / 列 料 料 料 LED

More information

EK-STM32F

EK-STM32F STMEVKIT-STM32F10xx8 软 件 开 发 入 门 指 南 目 录 1 EWARM 安 装... 1 1.1 第 一 步 : 在 线 注 册... 1 1.2 第 二 步 : 下 载 软 件... 2 1.3 第 三 步 : 安 装 EWARM... 3 2 基 于 STMEVKIT-STM32F10xx8 的 示 例 代 码 运 行... 6 2.1 GPIO Demo... 6 2.2

More information

IP505SM_manual_cn.doc

IP505SM_manual_cn.doc IP505SM 1 Introduction 1...4...4...4...5 LAN...5...5...6...6...7 LED...7...7 2...9...9...9 3...11...11...12...12...12...14...18 LAN...19 DHCP...20...21 4 PC...22...22 Windows...22 TCP/IP -...22 TCP/IP

More information

xilinx FPGA 串口设计笔记 在设计中, 需要用 FPGA 读取 GPS 内部的信息,GPS 的通信方式为串口, 所以在 FPGA 中移植了串口程序 本次移植的程序源代码是特权的串口程序, 本以为移植应该很快就能完成, 但其中还是出了一写小问题, 耽误了不少的时间, 下面将问题进行一个总结!

xilinx FPGA 串口设计笔记 在设计中, 需要用 FPGA 读取 GPS 内部的信息,GPS 的通信方式为串口, 所以在 FPGA 中移植了串口程序 本次移植的程序源代码是特权的串口程序, 本以为移植应该很快就能完成, 但其中还是出了一写小问题, 耽误了不少的时间, 下面将问题进行一个总结! xilinx FPGA 串口设计笔记 在设计中, 需要用 FPGA 读取 GPS 内部的信息,GPS 的通信方式为串口, 所以在 FPGA 中移植了串口程序 本次移植的程序源代码是特权的串口程序, 本以为移植应该很快就能完成, 但其中还是出了一写小问题, 耽误了不少的时间, 下面将问题进行一个总结! 以下是串口的时序 : 在设计中, 耽误时间最长的问题就是数据老是出错, 为了找出问题的所在, 用示波器观察了

More information

Microsoft PowerPoint - Aqua-Sim.pptx

Microsoft PowerPoint - Aqua-Sim.pptx Peng Xie, Zhong Zhou, Zheng Peng, Hai Yan, Tiansi Hu, Jun-Hong Cui, Zhijie Shi, Yunsi Fei, Shengli Zhou Underwater Sensor Network Lab 1 Outline Motivations System Overview Aqua-Sim Components Experimental

More information