Lưu đồ thuật toán quá trình cảnh báo

Một phần của tài liệu (LUẬN VĂN THẠC SĨ) Giao tiếp với đường truyền điện thoại bằng vi điều khiển (Trang 60)

Hình 3 .16 Sơ đồ nguyên lý ghép nối với máy tính

Hình 3.18 Lưu đồ thuật toán quá trình cảnh báo

Kiểm tra tín hiệu

Tín hiệu cảnh báo

Kết nối với tổng đài

Khởi tạo các giá trị đếm n: số lượng số điện thoại i: thứ tự số điện thoại Quay số thứ i Tín hiệu chờ quay số Có tín hiệu Tín hiệu busy Kiểm tra tín hiệu

Tín hiệu hồi âm chuông Số thứ i chưa

nhấc Số lần quay <2

Quá thời gian chờ

Ngắt kết nối với tổng đài

i > n

Tăng số lần quay

Tăng i lên 1 đơn vị

Kết thúc quá trình cảnh báo Phát bản tin cảnh báo + + + + + + + - - - - - + - - -

Khi có tín hiệu cảm biến thì Vi điều khiển sẽ đóng rơle và yêu cầu được kết nối. Khi đó tổng đài sẽ gửi đến tín hiệu yêu cầu mời quay số là tín hiệu hình sin liên tục có tần số là 425Hz và Vi điều khiển sẽ mã hóa từng số của số điện thoại thứ nhất lưu trong Vi điều khiển theo mã DTMF và gửi lên đường dây. Khi đã gửi hết các số của số điện thoại thứ nhất thì tổng đài sẽ gửi các tín hiệu âm tần về, thông qua các tín hiệu âm tần gửi về, Vi điều khiển sẽ xác định được trạng thái thuê bao vừa gọi.

- Nếu có tín hiệu chuông hồi âm về thì Vi điều khiển sẽ chờ kết nối. Khi số thuê bao được gọi nhận thì Vi điều khiển sẽ tự động chuyển sang trạng thái phát nội dung bản tin đã ghi. Sau khi phát hết bản tin, Vi điều khiển sẽ tự động chuyển sang số thứ hai.

- Nếu có tín hiệu báo bận thì Vi điều khiển sẽ tự động chuyển sang số thứ hai. Quá trình này lại được lặp lại cho các số tiếp theo. Khi đã phát hết 6 số, thì Vi điều khiển sẽ quay lại cảnh báo đến các số chưa báo được. Khi nào cả 6 số đã được cảnh báo thì Vi điều khiển sẽ thoát khỏi chế độ cảnh báo.

Lưu đồ thuật toán quá trình cảnh báo hình 3.17.

3.2.2 Quá trình thêm số điện thoại vào bộ nhớ.

Sau khi chọn chế độ thêm số điện thoại thì khi đó trên giao diện LCD thể hiện thông báo Clear, Save và Exit tương ứng với nút 1, nút 2 và nút 3. Khi đó mạch trong trạng thái giải mã tín hiệu DTMF được lấy từ bàn phím điện thoại. Sau khi nhập xong, nếu chọn Clear hoặc Exit thì mạch thoát và không lưu, nếu chọn Save thì số điện thoại được lưu vào bộ nhớ và chờ nạp số điện thoại tiếp theo. Trước khi nạp một số điện thoại mới thì mạch luôn kiểm tra đã vượt quá 6 số chưa, nếu chưa thì tiếp tục nhận, nếu đã có đủ 6 số rồi thì mạch thông báo đầy bộ nhớ

Thêm số điện thoại mới

Kiểm tra đủ 6 số chưa Báo đầy bộ nhớ

Nhập số điện thoại Xóa Lưu + + + + - - - Thoát Tăng bộ nhớ lên

3.2.3 Quá trình kiểm tra, thay đổi và xóa số điện thoại

Sau khi đã chọn chế độ này, sẽ có thông báo hiển thị trên LCD. Có các nút bấm là nút 1, nút 2 và nút 3 tương ứng với các chữ Next, OK và Cancel. Muốn kiểm tra số điện thoại thì chọn OK. Sau khi đã chọn OK thì LCD sẽ hiển thị số thứ nhất đã lưu và có các chữ Next, Change và Exit tương ứng với nút 1, nút 2 và nút 3.

- Muốn kiểm tra số tiếp theo thì chọn Next, khi kiểm tra hết muốn thoát thì chọn Exit.

- Muốn thay đổi hoặc xóa thì chọn Change. Khi đó giao điện trên LCD là Clear, Save và Exit tương ứng với nút 1, nút 2 và nút 3.

+ Nếu muốn xóa số điện thoại thì chọn Clear và sau đó chọn Save để lưu kết quả, nếu không muốn xóa thì chọn Exit để thoát.

+ Nếu muốn thay đổi số điện thoại thì chọn Clear sau đó nhập số cần thay đổi từ điện thoại bàn. Sau khi nhập xong thì chọn Save để lưu kết quả. Nếu không muốn thay đổi thì chọn Exit để thoát.

Lưu đồ thuật toán quá trình kiểm tra, thay đổi và xóa số điện thoại hình 3.19

-

Kiểm tra,thay đổi hoặc xóa

Thay đổi

Tăng i

Nhập số điện thoại cần thay đổi

Giảm i Thoát Số tiếp theo Xóa + + + + - - - - - i=1

Hiển thị số điệ thoại tại i

Lưu

Thoát

+

3.2.4 Quá trình thay đổi bản tin

Để phù hợp cho từng loại cảnh báo thì bản tin phải thay đổi cho phù hợp. Sau khi lựa chọn chế độ thay đổi bản tin thì có thông báo hiển thị trên LCD với các chữ Start, Stop và Cancal tương ứng với nut1, nút 2 và nút 3. Khi muốn ghi bản tin thì chọn Start, khi ghi xong thì chọn Stop. Độ dài tối đa mỗi bản tin là 10 giây. Nếu không muốn thay đổi bản tin thì chọn Cancal.

3.3 Sơ đồ bố trí linh kiện bản mạch in

Kiểm tra phím bấm

Start Thực hiện lệnh ghi

Kiểm tra phím bấm Stop Cancal + + - - - +

Hình 3.21: Lưu đồ quá trình ghi âm

KẾT LUẬN

Sau một thời gian nghiên cứu, thiết kế, chế tạo và thực nghiệm. Được sự hướng dẫn tận tình của thầy PGS. TS. Ngô Diên Tập cũng như thầy đã tạo điều kiện thuận lợi để tôi có thể thực hiện việc thí nghiệm, kiểm tra mạch. Tôi đã rút ra được rất nhiều điều bổ ích từ việc nghiên cứu lý thuyết đơn thuần đến tạo ra được sản phẩm ứng dụng trên nền lý thuyết đã nghiên cứu. Sau rất nhiều lần thực nghiệm đến nay mạch đã hoàn thành, cơ bản đã đáp ứng được yêu cầu đề ra.

Tuy nhiên vì năng lực bản thân còn hạn chế, cũng như điều kiện công tác cho nên đến nay mạch vẫn chưa khai thác hết các phần phát triển. Tôi sẽ tiếp tục nghiên cứu, khai thác và phát triển phần giải mã thông tin người gọi. Sẽ kết nối mạch với máy tính tạo nên một tiện ích cho cuộc sống cũng như có thể điều khiển các thiết bị ở nhà khi đi ra khỏi nhà.

Cuối cùng tôi xin cám ơn tập thể thầy cô giáo khoa Điện tử Viễn thông trường Đại học Công nghệ trực thuộc trường Đại học Quộc gia Hà nội đã tạo điều kiện giúp đỡ để tôi có thể hoàn thành khóa luận này.

TÀI LIỆU THAM KHẢO

Tiếng việt

1. Nguyễn Tiến Ban (2007), Kỹ thuật viễn thông, Giáo trình của Học viện công nghệ bưu chính viễn thông, tr. 81-98.

2. Ngô Mỹ Hạnh (2006), Mạng thế hệ sau và tiến trình chuyển đổi, Nhà xuất bản bưu điện, tr. 7–13, 31-34, 135-140.

3. Nguyễn Hồng Sơn (2000), Cơ sở kỹ thuật chuyển mạch và tổng đài, Nhà xuất bản giáo dục, tr. 75-79.

4. Ngô Diên Tập (2006), Vi điều khiển với lập trình C, Nhà xuất bản Khoa học và Kĩ thuật Hà nội.

5. Nguyễn Duy Nhật Viễn (2007), Bài giảng môn Tổng đài điện tử, Giáo trình Khoa ĐTVT Trường Đại học Đà nẵng, tr. 4.1-4.14.

Tiếng Anh

6. Custom Computer Services (2009), C compile Reference Manual

7. Exar comporation (1997), Designing Caller Identification Delivery Using XR-2211.

8. http://www.ccsinfo.com

9. http://www.microchip.com/pickit2

10. http://www.datasheelarchive.com

11. http://www.dialabc.com/sound/dtmf.html

12. Microchip (2008), PICkit 2 programmer/ Debugger User’ Guide.

13. Steven J. Merifield (1994), DTMF Encode & Decode , School of Electronic Enginering of Australia, pp 8-13.

PHỤ LỤC

4.1 Khảo sát Vi điều khiển PIC16F877A 4.1.1 Các đặc tính

Đây là Vi điều khiển thuộc họ PIC16Fxxx với tập lệnh gồm 35 lệnh có độ dài 14 bit. Mỗi lệnh đều được thực thi trong một chu kì xung clock. Tốc độ hoạt động tối đa cho phép là 20MHz với một chu kì lệnh là 200ns. Bộ nhớ chương trình 8Kx14 bit, bộ nhớ dữ liệu 368x8byte RAM và bộ nhớ dữ liệu EEPROM với dung lượng 256x8 byte. Số PORT I/O là 5 với 33 chân I/O.

Các đặc tính ngoại vi bao gồm các khối chức năng sau: - Timer0: bộ đếm 8 bit với bộ chia tần số 8 bit.

- Timer1: bộ đếm 16 bit với bộ chia tần số, có thể thực hiện chức năng đếm dựa vào xung clock ngoại vi ngay khi Vi điều khiển hoạt động ở chế độ sleep.

- Timer2: bộ đếm 8 bit với bộ chia tần số. - Hai bộ bắt giữ/so sánh/điều chế độ rộng xung.

- Các chuẩn giao tiếp nối tiếp SSP (Synchronous Serial Port), SPI và I2C. - Chuẩn giao tiếp nối tiếp USART với 9 bit địa chỉ.

- Cổng giao tiếp song song PSP (Parallel Slave Port) với các chân điều khiển RD, WR, CS ở bên ngoài.

Các đặc tính tương tự:

- 8 kênh chuyển đổi ADC 10 bit. - Hai bộ so sánh.

Các đặc tính đặc biệt

- Bộ nhớ flash với khả năng ghi xóa được 100.000 lần.

- Bộ nhớ EEPROM với khả năng ghi xóa được 1.000.000 lần.

- Dữ liệu bộ nhớ EEPROM có thể lưu trữ trên 40 năm.

- Khả năng tự nạp chương trình với sự điều khiển của phần mềm.

- Nạp chương trình thông qua ICSP - Watchdog Timer với bộ dao động trong.

- Chức năng bảo mật mã chương trình. - Chế độ Sleep.

- Có thể hoạt động với nhiều dạng Oscillator khác nhau. Công nghệ CMOST

- Công suất tiêu thụ thấp, tốc độ ghi đọc nhanh - Điện áp làm việc từ 2,0V đến 5,5 V

4.1.2 Sơ đồ khối

Tên chân Chân I/O/P Mô tả

OSC1

CLKIN 13 I

Đầu vào của xung dao động thạch anh Chân vào xung clock ngoài

OSC2

CLKOUT 14 O

Đầu ra của xung dao động thạch anh. Nối với thạch anh hay cộng hưởng trong chế độ dao động của thạch anh.

MCLR/Vpp 1 I/P

Chân vào của Master Clear (Reset) hoặc chân vào điện thế được lập trình. Chân này cho phép tín hiệu Reset thiết bị tác động ở mức thấp.

RA0/AN0 2 I/O PORTA là port vào ra hai chiều.

AN0 có thể làm chân vào tương tự thứ 0. RA1/AN1 3 I/O AN1 có thể làm chân vào tương tự thứ 1. RA2/AN2/

VREF –

4 I/O AN2 có thể làm chân vào tương tự 2 hoặc điện áp chuẩn tương tự âm.

RA3/AN3/

VREF + 5 I/O

AN3 có thể làm chân vào tương tự 3 hoặc điện áp chuẩn tương tự dương.

RA4/T0CKI 6 I/O RA4 có thể làm chân vào xung clock cho bộ định thời

C1OUT Timer0. Đầu ra của bộ so sánh 1. RA5/AN4

SS/C2OUT 7 I/O

AN4 có thể làm chân vào tương tự thứ 4. Chân vào SPI Đầu ra của bộ so sánh 2. RB0/INT RB1 RB2 33 34 35 I/O I/O I/O

PORTB là cổng vào ra hai chiều. Có thể được lập trình INT có thể làm chân ngắt ngoài.

RB3/PGM 36 I/O PGM có thể làm chân vào của điện thế được lập trình ở mức thấp. RB4 RB5 RB6/PGC RB7/PGD 37 38 39 40 I/O I/O I/O I/O

PGC là chân dao động cho giao tiếp ICSP PGD là chân dữ liệu cho giao tiếp ICSP RC0/T1OSO

/T1CKI 15 I/O

PORTC là port vào ra hai chiều.

T1OSO là đầu ra của bộ dao động Timer1 T1CKI là chân xung đồng vào cho Timer1 RC1/T1OSI

/CCP2 16 I/O

T1OSI là chân vào của bộ dao động Timer1

CCP2 là chân vào bộ giữ 2/chân ra bộ so sánh2/chân vào PWM 2.

RC2/CCP1 17 I/O CCP2 là chân vào bộ giữ 1/chân ra bộ so sánh1/chân vào PWM 1

RC3/SCK/

SCL 18 I/O

SCK là chân vào ra xung đồng hồ cho chuẩn SPI SCL là chân vào ra xung đồng hồ cho chuẩn I2C RC4/SDI/

SDA 23 I/O

SDI là chân vào dữ liệu cho chuẩn SPI SDA là chân vào ra dữ liệu cho chuẩn I2C RC5/SDO 24 I/O SDO có thể là chân ra dữ liệu cho chuẩn SPI RC6/TX/CK 25 I/O TX có thể là chân truyền không đồng bộ USART

CK là chân xung đồng hồ bất đồng bộ USART1 RC7/RX/DT 26 I/O RX có thể là chân nhận không đồng bộ USART

DT là chân dữ liệu đồng bộ USART. RD0/PSP0 RD1/PSP1 RD2/PSP2 RD3/PSP3 RD4/PSP4 RD5/PSP5 RD6/PSP6 RD7/PSP7 19 20 21 22 27 28 29 30 I/O I/O I/O I/O I/O I/O I/O I/O

PORTD là cổng vào ra hai chiều

PORTD là cổng PSP khi giao tiếp với bus của bộ vi xử lý.

RE0/RD/ AN5

8 I/O PORTE là port vào ra hai chiều. RD có thể điều khiển việc đọc PSP AN5 có thể là chân vào tương tự thứ 5. RE1/WR/

AN6 9 I/O

WR có thể điều khiển việc ghi PSP AN6 là chân vào tương tự thứ 6. RE2/CS/

AN7 10 I/O

CS có thể điều khiển việc chọn PSP AN7 là chân vào tương tự thứ 7 Vss VDD 12, 31 11, 32 P P

Cung cấp nguồn dương cho các mức logicvà những chân I/O.

Ghi chú: I = input O = output I/O = input/output P = power Bảng 3: Mô tả chức năng các chân của PIC16F877A

4.1.3 Tổ chức bộ nhớ 4.1.3.1 Bộ nhớ chương trình

Bộ nhớ chương trình của Vi điều khiển PIC16F877A là bộ nhớ flash, dung lượng bộ nhớ 8K word (1 word = 14 bit) và được phân thành nhiều trang (từ page0 đến page 3). Như vậy bộ nhớ chương trình có khả năng chứa được 8x1024 = 8192 lệnh (vì một lệnh sau khi mã hóa sẽ có dung lượng 1 word). Để mã hóa được địa chỉ của 8K word bộ nhớ chương trình, bộ đếm chương trình có dung lượng 13 bit. Khi Vi điều khiển được reset, bộ đếm chương trình sẽ chỉ đến địa chỉ 0000h. Khi có ngắt xảy ra, bộ đếm chương trình sẽ chỉ đến địa chỉ 0004h. Bộ nhớ chương trình không bao gồm bộ nhớ ngăn xếp và không được địa chỉ hóa bởi bộ đếm chương trình.

4.1.3.2 Bộ nhớ dữ liệu

Bộ nhớ dữ liệu của Vi điều khiển được chia ra làm 4 khoảng nhớ. Mỗi khoảng nhớ có dung lượng 128 byte, bao gồm các thanh ghi có chức năng đặc biệt

SFG (Special Function Register) nằm ở các vùng địa chỉ thấp và các thanh ghi mục đích chung GPR (General Purpose Register) nằm ở vùng địa chỉ còn lại trong khoảng nhớ. Các thanh ghi SFR thường xuyên được sử dụng (ví dụ như thanh ghi STATUS) sẽ được đặt ở tất cả các khoảng nhớ của bộ nhớ dữ liệu giúp thuận tiện trong quá trình truy xuất và làm giảm bớt lệnh của chương trình.

4.1.4 Các cổng truy xuất của MCU

Cổng truy xuất (I/O port) chính là phương tiện mà Vi điều khiển dùng để tương tác với thế giới bên ngoài. Sự tương tác này rất đa dạng và thông qua quá trình tương tác đó, chức năng của Vi điều khiển được thể hiện một cách rõ ràng. Một cổng truy xuất của Vi điều khiển bao gồm nhiều chân (I/O chân), tùy theo cách bố trí và chức năng của Vi điều khiển mà số lượng cổng truy xuất và số lượng chân trong mỗi cổng có thể khác nhau. Bên cạnh đó, do Vi điều khiển được tích hợp sẵn bên trong các đặc tính giao tiếp ngoại vi nên bên cạnh chức năng là cổng truy xuất thông thường, một số chân truy xuất còn có thêm các chức năng khác để thể hiện sự tác động của các đặc tính ngoại vi nêu trên đối với thế giới bên ngoài. Chức năng của từng chân truy xuất trong mỗi cổng hoàn toàn có thể được xác lập và điều khiển được thông qua các thanh ghi SFR liên quan đến chân truy xuất đó. Vi điều khiển PIC16F877A có 5 cổng truy xuất, bao gồm PORTA, PORTB, PORTC, PORTD và PORTE. Cấu trúc và chức năng của từng cổng truy xuất sẽ được đề cập cụ thể trong phần sau.

Một phần của tài liệu (LUẬN VĂN THẠC SĨ) Giao tiếp với đường truyền điện thoại bằng vi điều khiển (Trang 60)

Tải bản đầy đủ (PDF)

(100 trang)