Báo cáo đồ án môn thiết kế luận lý - Pdf 33

TRƯỜNG ĐẠI HỌC BÁCH KHOA TP.HCM
KHOA KHOA HỌC VÀ KỸ THUẬT MÁY TÍNH

BÁO CÁO
Môn:ĐỒ ÁN

`

THIẾT KẾ LUẬN LÝ

ĐỀ TÀI:
PASWORD DOOR SECURITY

GVHD: PHAN ĐÌNH THẾ DUY

Thành viên nhóm:
Phạm Khánh Duy

51200576

Phạm Lê Quốc Trung

51204157

Trần Tuấn Đạt

51200746

Tp.HCM,ngày 22 thánh 12 năm 2014

Trang 1

Ngày nay, trênt thế giới, điện tử viễn thông vẫn không ngừng phát triển với tốc độ rất cao và thâm
nhập vào tất cả các lĩnh vực của đời sống xã hội. Trong đó, lĩnh vực bảo mật là một mảng lớn mà
chúng ta can quan tâm, và đề tài của nhóm liên quan tới lĩnh vức này, đó là đề tài password door
security. Hệ thống này cho phép ta quản lý và hạn chế được số người ra vào theo mã số trong khu vực
cần bảo mật vối độ an toàn cao. Đề tài tuy không lớn nhưng về mặt nguyên lý thì có thể phát triển
thành các ứng dụng quản lý theo thẻ từ, mã vạch, mã …trong các khu vực đặc biệt cần phải có máy
tính hiện địa với CSDL, ngoài mật mã còn kiểm tra tần số giọng nói và camera kiểm tra hình ảnh,…
mà hiện nay đang rất cần thiết. Vì thế đối với nhóm đây là bước cơ sở để nhóm nghiên cứu những
ứng dụng lớn hơn sau này.
Trong quá trình thực hiện đề tài, tuy đã cố gắng song do những hạn chế nhất định về kiến thức cũng
như kinh nghiệm thực tế nên nhóm không tránh khỏi những thiếu sót. Chúng em rất mong nhận được
những ý kiến đóng góp của thầy cô và các bạn để đề tài của nhóm em được hoàn thiện hơn với nhiều
chức năng hơn.

Trang 3


Đồ án Thiết kế luận lý

PHẦN B NỘI DUNG
CHƯƠNG 1: GIỚI THIỆU
1.1Yêu cầu và chức năng hệ thống
Yêu cầu
Đây là một hệ thống đóng mở theo mã cho phép một số ít người có thể ra vào theo mã của họ. Nó có
thể được áp dụng làm cửa ra vào của các hệ thống can mang tính bảo mật, giới hạn số người ra vào
như: cửa ra vào cơ quan, nhà máy, các khu quan trọng,…
Trên cơ sở đó hệ thống phải có các yêu cầu cơ bản sao:
+ Tính an toàn: có chức năng bảo vệ
+ Dễ sử dụng:có đầy đủ hướng dẫn để người dùng sử dụng


Board mạch ARM STM32F103RB
1 LCD 16x2.
1 Bàn phím 3x4.
đèn led.
1 còi âm thanh.



Phần mềm:






Keil ARM
Flash loader demonstrator
Dfuse demonstration
Altium

1.3Kế hoạch, phân công công việc

 Tài liệu: Phạm Khánh Duy + Phạm Lê Quốc Trung + Trần Tuấn Đạt.
 Thiết kế mạch, đặt mạch, in mạch: Trần Tuấn Đạt.
 Source Code: Phạm Khánh Duy + Phạm Lê Quốc Trung.
 Test mạch: Phạm Khánh Duy.
 Viết báo cáo: Phạm Lê Quốc Trung.

Trang 5



Khối Vi điều khiển: kit OLIMEXINO-STM32F103RB
Xử lý các thông tin, nhận thông tin từ bàn phím , đưa đến điều khiển động cơ và đưa thông tin
hiển thị ra LCD thông báo cho người dùng.

─ Cốt lõi: ARM 32-bit Cortex ™-M3 CPU
─ Tần số tối đa 72 MHz, 1,25 DMIPS / MH z (Dhrystone 2.1)
biểu diễn tại 0 chờ đợi truy cập bộ nhớ trạng thái
─ Nhân chu trình đơn và bộ phận phần cứng
─ 256-512 Kbytes bộ nhớ Flash
─ Lên đến 64 Kbytes SRAM
─ Linh hoạt điều khiển bộ nhớ tĩnh với 4 Chip Select. Hỗ trợ
Compact Flash, SRAM, PSRAM, NOR và NAND kỷ niệm
─ LCD giao diện song song, 8080/6800 chế độ
─ Đồng hồ, thiết lập lại và quản lý cung cấp
─ 2,0-3,6 V cung cấp ứng dụng và I / O
─ POR, PDR, và lập trình phát hiện điện áp (PVD)
─ tinh thể dao động 4-đến-16 MHz
─ 8 MHz RC
─ Hiệu chuẩn Nội bộ 40 kHz RC
─ dao động 32 kHz cho RTC
─ Điện năng thấp
─ sleep, Stop và wait
─ VBAT cung cấp cho RTC và đăng ký sao lưu
─ 3 x 12-bit, 1 ms chuyển đổi A / D (lên đến 21 kênh)
─ Phạm vi chuyển đổi: 0-3,6 V
─ Ba mẫu và giữ khả năng
─ Cảm biến nhiệt độ
─ D/A chuyển đổi 2x12-bit
─ DMA: 12 kênh điều khiển DMA

─ Giao diện USB 2.0 tốc độ đầy đủ
─ Giao diện SDIO
─ Đơn vị tính CRC, 96-bit ID duy nhất
─ ECOPACK gói

Môi trường phần cứng:
─ Chip ARM Cortex m3-STM32F103RCT6 được cấp nguồn +3.3V thông qua cổng USB của
PC, dùng thạch anh ngoài 8MHz, sau khi qua bộ nhân tần số đưa vào CPU lên tới 72MHz.

─ 2 pin Tx và Rx củ a USART1 lần lượt là: PA9, PA10.
Môi trường phần mềm:
─ Chương trình được viết dựa trên nền tảng bộ thư viện chuẩn CMSIS do công ty ARM đề xuất và
bộ thư viện truy xuất ngoại vi tương thích chuẩn CMSIS do công ty ST cung cấp
Chương trình được biên dị ch b ằng công c ụ quen thu ộc: Keil v4.01

─ Cổng USART1 được cài đặt các thông s ố hoạt động như sau:
+ BaudRate = 115200 baud
+ Word Length = 8 Bits
+ One Stop Bit
+ No parity
+ Hardware flow control disabled (RTS and CTS signals)
+ Receive and transmit enabled

Trang 8


Đồ án Thiết kế luận lý

Khối bàn phím: Keypad 3x4
Bàn phím gồm các nút. Mỗi nút là một bộ phận đogn1 mở bằng cơ khí. Các mã của bàn phím

EEPROM
SCL

Sơ đồ kết nối

Khối mở cửa: Điều khiển đóng mở cửa (mô phỏng bằng LED xanh sáng, tắt).

Khối báo động: Cảnh báo khi nhập sai mật khẩu quá 3 lần. Thông qua hệ thống chông báo động.

Trang 10


Đồ án Thiết kế luận lý

2. 3 Source Code
Hệ thống sẽ cấp sẵn một số password của các cửa từ 0 đến 9. Các các password này sẽ được lưu
trong bộ nhớ EEPROM. Khi khởi động hệ thống, chương trình sẽ đọc các dữ liệu trong bộ nhớ này
Đầu tiên ta sẽ tiến hành chọn mã số cửa muốn mở, đó là các mã số từ 0 đến 9. Sau khi đã xác định
được cửa, ta sẽ tiến hành nhập password đã được cài đặt sẵn, nếu nhập sai hệ thống sẽ yêu cầu bấm
phím # để nhập lại. Nếu nhập đúng, hãy bấm phím số 1 để cửa mở, ngoài ra nếu muốn đổi password
mới ta nhấn phím *.
Lưu ý: Khi ở cửa ADMIN, ta có thể xem password các cửa khác bằng cách nhấn phím 0, sau đó
chọn mã số cửa muốn xem.

 Project gồm các module thực hiện các chức năng của các khối như sau:

 Keypad3x4:
Khởi tạo keypad3x4:
#include "Keypad.h"
#include "gpio.h"


Neu khong co nut duoc an.

********************************************************************************/
uint8_t

KEY3X4_IsPush(void)

{
if((COL0==0)|(COL1==0)|(COL2==0)) {
//

printf("aaa %d %d %d\n",COL0, COL1, COL2);
return 1;
}
else
return 0;

}

Trang 11


Đồ án Thiết kế luận lý

/*******************************************************************************
Noi Dung

:


:

Lay gia tri nut nhan duoc an.

Tham Bien

:

Khong.

Tra Ve

:

0:

Neu khong co nut duoc an.
khac 0: Gia tri cua nut an.

********************************************************************************/
uint8_t

KEY3X4_GetKey(void){

uint8_t

i;

ROW0_OFF;
ROW1_OFF;


#define COL2

GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_6)

#define COL0_ON

GPIO_SetBits(GPIOA,GPIO_Pin_9);

#define COL0_OFF
#define COL1_ON

GPIO_ResetBits(GPIOA,GPIO_Pin_9);
GPIO_SetBits(GPIOA,GPIO_Pin_8);

#define COL1_OFF
#define COL2_ON
#define ROW0_ON
#define ROW1_ON
#define ROW2_ON
#define ROW3_ON

//D2

GPIO_ResetBits(GPIOA,GPIO_Pin_0);
GPIO_SetBits(GPIOB,GPIO_Pin_9);

#define ROW3_OFF

//D3


GPIO_ResetBits(GPIOB,GPIO_Pin_9);

 LCD16x2:
Khởi tạo LCD:
#include "lcd4bit.h"
#include "delay.h"
/*******************************************************************************
Noi Dung

:

Gui tin hieu Enable den LCD.

Tham Bien

:

Khong.

Tra Ve

:

Khong.

********************************************************************************/
void LCD_Enable(void)
{
LCD_EN(1);

void LCD_Send4Bit( uint8_t

Data )

{
//

LCD_RW(0);//

//

LCD_EN(1);//
LCD_D4((Data>>0)&0x01);
LCD_D5((Data>>1)&0x01);
LCD_D6((Data>>2)&0x01);
LCD_D7((Data>>3)&0x01);

//

delay_ms(1);//

//

LCD_EN(0);//

//

delay_ms(1);//

}

( command >>4 );

/* Gui 4 bit cao */

LCD_Enable () ;
LCD_Send4Bit

( command

);

/* Gui 4 bit thap*/

LCD_Enable () ;
//

LCD_RS(0);//

}
/*******************************************************************************
Noi Dung

:

Khoi tao LCD.

Tham Bien

:


LCD_Send4Bit(0x03);
delay_ms(5);
LCD_Send4Bit(0x03);
LCD_Enable();
delay_ms(5);
LCD_Enable();
delay_ms(100);
LCD_Enable();
LCD_Send4Bit(0x02);
//delay_ms(16);
LCD_Enable();
LCD_SendCommand( 0x28 );// giao thuc 4 bit, hien thi 2 hang, ki tu 5

//

delay_ms(16);
LCD_SendCommand( 0x0c);// cho phep hien thi man hinh

//

delay_ms(16);
LCD_SendCommand( 0x00 );// tang ID, khong dich khung hinh

//

delay_ms(16);
LCD_Clr();// xoa toan bo khung hinh

}
/*******************************************************************************


if(!y)
address = (0x80+x);
else
address = (0xC0+x);
delay_ms(1);
LCD_SendCommand(address);
delay_ms(5);
}
/*******************************************************************************
Noi Dung

:

Xoa noi dung hien thi tren LCD.

Tham Bien

:

Khong.

Tra Ve

:

Khong.

Trang 15



Data )

{
LCD_RS(1);
LCD_SendCommand( Data );
LCD_RS(0);
}
/*******************************************************************************
Noi Dung

:

Viet 1 chuoi ki tu len LCD.

Tham Bien

:

Khong.

Tra Ve

:

Khong.

********************************************************************************/
void LCD_Puts(char *s)
{


#define LCD_RW_OFF
#define LCD_EN_ON

GPIO_SetBits(GPIOA, GPIO_Pin_4);
GPIO_SetBits(GPIOA, GPIO_Pin_7);
GPIO_SetBits(GPIOA, GPIO_Pin_6);

//D12

GPIO_ResetBits(GPIOA, GPIO_Pin_6);
GPIO_SetBits(GPIOA, GPIO_Pin_5);

#define LCD_D6_OFF
#define LCD_D7_ON

//D11

GPIO_ResetBits(GPIOA, GPIO_Pin_7);

#define LCD_D5_OFF
#define LCD_D6_ON

//D10

GPIO_ResetBits(GPIOA, GPIO_Pin_4);

#define LCD_D4_OFF
#define LCD_D5_ON


SDA_OUT=1;
delay_ms(1);
}
// Ham start I2C
void start(void)
{
GPIO_SetState(GPIOB,GPIO_Pin_11,GPIO_Mode_Out_OD);
SCL=1;
//delay_ms(10000);
SDA_OUT=1;
delay_ms(1);

Trang 17


Đồ án Thiết kế luận lý

SDA_OUT=0;
delay_ms(1);
SCL=0;
delay_ms(1);
}
// Ham stop I2C
void stop(void)
{
GPIO_SetState(GPIOB,GPIO_Pin_11,GPIO_Mode_Out_OD);
SDA_OUT=0;
SCL=1;
delay_ms(1);
SDA_OUT=1;


Trang 18


Đồ án Thiết kế luận lý

SCL=1;
gt=gt*2;
delay_ms(1);
gt=gt|SDA_IN;
SCL=0;
delay_ms(1);
}
GPIO_SetState(GPIOB,GPIO_Pin_11,GPIO_Mode_Out_OD);
SCL=1;
SDA_OUT=1;
delay_ms(1);
SCL=0;
return gt;
}

Khởi tạo EEPROM:
#include "at24cxx.h"
#include "i2c.H"
#include "delay.h"
/*******************************************************************************
Noi Dung

:


address:

Tra Ve

:

Gia tri du lieu doc duoc.

Dia chi can doc du lieu.

********************************************************************************/
uint8_t EEP_24CXX_Read(uint8_t address)
{
uint8_t Data;
start();
truyen(0xa0);
truyen(address);
start();
truyen(0xa1);
Data=nhan();
stop();

Trang 19


Đồ án Thiết kế luận lý

return Data;
}
/*******************************************************************************

truyen(address);
truyen(Data);
stop();
delay_ms(10);
}
/*******************************************************************************
Noi Dung

:

Viet mot chuoi du lieu vao EEPROM.

Tham Bien

:

address:

Dia chi bat dau ghi du lieu.

*s

Chuoi du lieu can ghi.

Tra Ve

:

:



lenght :
Tra Ve

:

Do dai du lieu can doc.

Khong.

********************************************************************************/
void EEPROM_24CXX_ReadS(uint8_t address, uint8_t lenght, uint8_t *s){
uint8_t i=0;
while(lenght){
s[i++]=EEP_24CXX_Read(address++);
lenght--;
delay_ms(2);
}
s[i]=0;
}

Trang 20


Đồ án Thiết kế luận lý

2.4 Mạch nguyên lý, mạch layout

Mạch nguyên lý sử dụng phần mềm Antium:


người dùng lắm. Ta có thể sử dụng CGRAM để vẽ các ký tự tiếng Việt có dấu giúp người Việt dễ
sử dụng hơn.
Mặt khác với 10 chữ số từ 09 thì mức độ bảo mật chưa cao lắm. Ta có thể sử dụng các ký tự latin
để làm password để tăng tính bảo mật cho hệ thống.
Do là thiết kế đầu tiên nên không thể tránh khỏi sai sót nhất định Chúng em xin chân thành cảm ơn
sự giúp đỡ và hướng dẫn của các thầy giáo và các anh chị, các bạn trong thời gian vừa qua. Mong
rằng sẽ nhận được nhiều đóng góp ý kiến để bản thiết kế này và những bản thiết kế sau ngày càng
được hoàn thiện hơn.

Trang 23


Đồ án Thiết kế luận lý

PHẦN C TÀI LIỆU THAM KHẢO
/>www.arm.vn/


Trang 24




Nhờ tải bản gốc

Tài liệu, ebook tham khảo khác

Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status