免费论文网 首页

tim电脑

时间:2018-11-09 11:17 来源:免费论文网

篇一:TIM&TAM产品介绍

1. 方案中的主要产品介绍

1.1. IBM Tivoli Identity Manager

1.1.1. IBM Tivoli Identity Manager概述

IBM Tivoli Identity Manager提供了一个安全、自动而且基于策略的用户管理解决方案,满足客户无论是在原有的IT环境还是电子商务时代的IT环境下将企业的核心业务展现给客户、供应商、合作伙伴甚至竞争对手的需求。在现有的业务流程中引入基于Web的管理和自助式服务接口的动机,反应了客户对简化及基于安全策略的自动化用户管理的需求。Tivoli Identity Manager包含一个工作流引擎,同时利用用户身份信息提供如审计、报告等功能。

IBM Tivoli Identity Manager既可以直接与用户交互,也可以与两种类型的外部系统-身份数据源和访问控制机制直接交互。身份系统管理需要在各个系统中建立帐号的用户身份的权威数据。发布系统与访问控制系统直接交互,从而建立用户帐号,提供用户信息以及密码,定义用户的授权信息。与之相反的是,在访问控制系统中进行的改动能够被发布系统所捕获并报告,然后按照安全策略对这些改动进行评估。

1.1.2. IBM Tivoli Identity Manager产品架构

IBM Tivoli Identity Manager的逻辑结构根据功能的不同设计为三层,如下图所示,各个组件分别为:

? Web用户界面层

? 应用层

? 服务层

? LDAP目录

? 数据库

? 资源连结器

图3-1 逻辑组件结构

1.1.2.1. Web用户界面层

Web用户界面模块是一组结合在一起的子程序,包括提供用户浏览器的内容和启动applet(同时在客户端和服务器端运行),如工作流设计和表单创建。Web用户界面是用户浏览器和身份管理应用层的连接层。

在上面的图中,用户交互点有三种类型:终端用户,监督员和管理员。这些类型仅仅是概念上的,因为IBM Tivoli Identity Manager允许您随意的定义各种权限的不同用户类型。

在上面的图中,指出的重要一点是系统的基础为系统用户功能的一般性概念。例如,假定管理员需要更高的权力,要求更高级的用户界面;假定监督人员需要稍微低一些的权力,但仍需要如组织图表之类的概念;最后,终端用户没有任何假定,显示给终端用户的接口必定是仅具有基本的、直接的功能接口。

1.1.2.2. 应用层

IBM Tivoli Identity Manager系统的核心正是应用层。应用层驻存于应用服务器中,提供了对其他所有进程对象的管理功能。

应用界面模块由所有的特定应用的用户界面组件构成。例如,该界面需要创建一个指派规则或者该模块中的一个帐户。这一模块可以使用Web用户界面子系统中的其他模块,例如表单提交和搜索模块。

1.1.2.3. 服务层

如果说IBM Tivoli Identity Manager服务器是一个为复杂规则所开发的应用,那么应用服务器就是运行这些规则或对象的引擎。它不仅与运行用户界面的Web服务器交互,还与从属于所管理服务的适配器、存储信息的目录服务器进行交互。

核心服务子系统包含了所有的模块,提供了可用于进行用户身份管理一般性服务,如认证、授权、工作流和规则执行。这些服务经常利用其他服务来达到目的。

1.1.3. IBM Tivoli Identity Manager产品功能

1.1.3.1. 集中式的帐户管理

IBM Tivoli Identity Manager 可以集中的为一个组织创建、管理、挂起和移除所有用户的帐户。从而降低各种用户帐号管理的成本。

1.1.3.2. 基于角色的用户管理和访问控制

基于角色的访问这一概念是指,利用个人的某些已知信息来决定赋予其相应的权利。IBM Tivoli Identity Manager将用户按照角色来管理。大多数情况下,一个角色代表着通用的职责。例如,可以在组织中创建一个会计的角色,使其能够访问所有的跟会计相关的应用和资源。同样职责的应用有银行机构中的信贷人员,或者保险公司中的理赔评估人等等。为用户分配角色可以是固定的,也可以是动态的。

固定:管理员必须手动的为每位用户添加相应的角色;

动态:按照一项或多项个人数据项(LDAP属性),为每位用户自动的添加角色。例如,所有的信贷人员都会依照他们的职位、部门编号或管理者的名字统一添加到一个信贷人员角色。

一旦某位用户被IBM Tivoli Identity Manager分配了一个特定的角色,也就会获得该角色相关的资源。在我们的解决方案中,角色或者是在我们产品中唯一的被创建,或者是从您公司的HR系统依照现存角色提取出的模型。

1.1.3.3. 委托管理

IBM Tivoli Identity Manager提供了委托管理功能。使用内置的访问控制项(Access Control Information,ACI)的策略,实现多方面的细粒度控制,如用户信息、报告和指派功能(策略、工作流、服务)、所有用户的身份属性和操作(移除、转移、搜索、恢复、挂起、添加和修改)的详细的GRANT和DENY选项。管理的范围是对系统中的所有用户,直至单个用户的级别。

例如,您可以创建一个服务台角色和一个安全管理员角色。服务台角色将被限制接入到机密或敏感信息,而安全管理员角色拥有全部权限。这些角色一旦被创建,您就可以管理相应的ACI。安全管理员角色将“允许”访问所有安全级别的信息。服务台角色将会被限制查看个人机密信息,但可以修改某些属性,如“职位”。

1.1.3.4. 用户自助式服务

IBM Tivoli Identity Manager 的自助服务功能非常有用。自助式服务功能使用户(和委托管理员)可以通过用户指派系统管理授权数据。利用角色和ACI规则,用户可以对其他用户和委托管理员指派特定的权限,对个人数据执行某特定操作,如添加或移除。通过自助式服务功能,授权用户可以自己重设密码,自助的注册以申请所要管理资源的访问权限。

1.1.3.5. 用户数据和密码的同步

IBM Tivoli Identity Manager与IBM Tivoli Directory Integrator结合在一起,提供对组织中所有被管理系统的用户帐户信息以及密码同步的能力。通过IBM Tivoli Identity Manager既可以保证企业内部用户信息的一致性,又可以保证用户密码的统一管理。经过

篇二:STM32F10x_TIM

19.1 TIM寄存器结构 ....................................................................242

19 通用定时器(TIM)

通用定时器是一个通过可编程预分频器驱动的16 位自动装载计数器构成。 它适用于多种场合,包括测量

输入信号的脉冲长度(输入采集)或者产生输出波形(输出比较和PWM)。 使用定时器预分频器和RCC 时钟控制器预分频器,脉冲长度和波形周期可以在 几个微秒到几个毫秒间调整。

Section 19.1 TIM寄存器结构描述了固件函数库所使用的数据结构,Section 19.2 固件库函数介绍了函数库里的所有函数。

19.1 TIM寄存器结构

TIM 寄存器结构,TIM_TypeDeff,在文件“stm2f10x_map.h”中定义如下:

typedef struct {

vu16 CR1;

u16 RESERVED0; vu16 CR2;

u16 RESERVED1; vu16 SMCR;

u16 RESERVED2; vu16 DIER;

u16 RESERVED3; vu16 SR;

u16 RESERVED4; vu16 EGR;

u16 RESERVED5; vu16 CCMR1; u16 RESERVED6; vu16 CCMR2; u16 RESERVED7; vu16 CCER;

u16 RESERVED8; vu16 CNT;

u16 RESERVED9; vu16 PSC;

u16 RESERVED10; vu16 ARR;

u16 RESERVED11[3]; vu16 CCR1;

u16 RESERVED12; vu16 CCR2;

u16 RESERVED13; vu16 CCR3;

u16 RESERVED14; vu16 CCR4;

u16 RESERVED15[3]; vu16 DCR;

u16 RESERVED16; vu16 DMAR;

u16 RESERVED17; }TIM_TypeDef;

...

#define PERIPH_BASE ((u32)0x40000000) #define APB1PERIPH_BASE PERIPH_BASE

#define APB2PERIPH_BASE (PERIPH_BASE + 0x10000) #define AHBPERIPH_BASE (PERIPH_BASE + 0x20000) #define TIM2_BASE (APB1PERIPH_BASE + 0x0000) #define TIM3_BASE (APB1PERIPH_BASE + 0x0400) #define TIM4_BASE (APB1PERIPH_BASE + 0x0800) ...

#ifndef DEBUG ...

#ifdef _TIM2

#define TIM2 ((TIM_TypeDef *) TIM2_BASE) #endif /*_TIM2 */ #ifdef _TIM3

#define TIM3 ((TIM_TypeDef *) TIM3_BASE) #endif /*_TIM3 */ #ifdef _TIM4

#define TIM4 ((TIM_TypeDef *) TIM4_BASE) #endif /*_TIM4 */ ...

#else /* DEBUG */ ...

#ifdef _TIM2

EXT TIM_TypeDef *TIM2; #endif /*_TIM2 */ #ifdef _TIM3

EXT TIM_TypeDef *TIM3; #endif /*_TIM3 */ #ifdef _TIM4

EXT TIM_TypeDef *TIM4; #endif /*_TIM4 */ ... #endif

使用Debug模式时,初始化指针TIM2, TIM3和TIM4于文件“st32f10x_lib.c”:

...

#ifdef _TIM2

TIM2 = (TIM_TypeDef *) TIM2_BASE; #endif /*_TIM2 */ #ifdef _TIM3

TIM3 = (TIM_TypeDef *) TIM3_BASE; #endif /*_TIM3 */ #ifdef _TIM4

TIM4 = (TIM_TypeDef *) TIM4_BASE; #endif /*_TIM4 */ ...

为了访问 TIM 寄存器,, _TIM,_TIM2, _TIM3和_TIM4 必须在文件“stm2f10x_conf.h”中定义如下:

...

#define _TIM #define _TIM2 #define _TIM3 #define _TIM4 ...

19.2 TIM库函数

Table 458. TIM库函数【见首页】

19.2.1 函数TIM_DeInit

/* Resets the TIM2 */ TIM_DeInit(TIM2);

函数原型如下:

void TIM_DeInit(TIM_TypeDef* TIMx) {

/* Check the parameters */

assert_param(IS_TIM_ALL_PERIPH(TIMx));

//#define IS_TIM_ALL_PERIPH(PERIPH) (((*(u32*)&(PERIPH)) == TIM1_BASE) || ((*(u32*)&(PERIPH)) == TIM2_BASE) || \ // ((*(u32*)&(PERIPH)) == TIM3_BASE) || ((*(u32*)&(PERIPH)) == TIM4_BASE) || \ // ((*(u32*)&(PERIPH)) == TIM5_BASE) || ((*(u32*)&(PERIPH)) == TIM6_BASE) || \ // ((*(u32*)&(PERIPH)) == TIM7_BASE) || ((*(u32*)&(PERIPH)) == TIM8_BASE)) //TIMx_BASE值定义略。

switch (*(u32*)&TIMx){

case TIM1_BASE:

RCC_APB2PeriphResetCmd(RCC_APB2Periph_TIM1, ENABLE);//T1/T8在APB2中,T2-7在APB1中 RCC_APB2PeriphResetCmd(RCC_APB2Periph_TIM1, DISABLE); //先置1,再清0 break;

//void RCC_APB1PeriphResetCmd(u32 RCC_APB1Periph, FunctionalState NewState);

/*【2】

void RCC_APB2PeriphResetCmd(u32 RCC_APB2Periph, FunctionalState NewState) {

/* Check the parameters */

assert_param(IS_RCC_APB2_PERIPH(RCC_APB2Periph));assert_param(IS_FUNCTIONAL_STATE(NewState));

if (NewState != DISABLE) { RCC->APB2RSTR |= RCC_APB2Periph; }else { RCC->APB2RSTR &= ~RCC_APB2Periph; }}*/

case TIM2_BASE:

RCC_APB1PeriphResetCmd(RCC_APB1Periph_TIM2, ENABLE); RCC_APB1PeriphResetCmd(RCC_APB1Periph_TIM2, DISABLE); break;

/*【1】

void RCC_APB1PeriphResetCmd(u32 RCC_APB1Periph, FunctionalState NewState) {

/* Check the parameters */

assert_param(IS_RCC_APB1_PERIPH(RCC_APB1Periph));assert_param(IS_FUNCTIONAL_STATE(NewState));

if (NewState != DISABLE) { RCC->APB1RSTR |= RCC_APB1Periph; }


tim电脑
由:免费论文网互联网用户整理提供,链接地址:
http://m.csmayi.cn/meiwen/23749.html
转载请保留,谢谢!
相关阅读
最近更新
推荐专题