1. Trang chủ
  2. » Kỹ Thuật - Công Nghệ

Đồ án tốt nghiệp điều khiển thiết bị thông qua máy tính

108 305 1

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 108
Dung lượng 2,57 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Bên cạnh đó, do vi điều khiển được tích hợp sẵn bên trong các đặctính giao tiếp ngoại vi nên bên cạnh chức năng là cổng xuất nhập thông thường, một sốchân xuất nhập còn có thêm các chức

Trang 1

CHƯƠNG DẪN NHẬP

Trang 2

I.1 ĐẶT VẤN ĐỀ.

Ngày nay, khi công nghiệp ngày càng phát triển thì nhu cầu điều khiển được đặt lênhàng đầu Xuất phát từ nhu cầu đó điện tử tự động hoá ra đời và nó đã được xếp trongnhóm 5 ngành khoa học công nghệ hàng đầu vì những ứng dụng rộng rãi của nó Songsong với sự ra đời của điện tử tự động hoá là sự ra đời và cải tiến không ngừng của máytính Từ những chiếc máy tính đời đầu chỉ thực hiện những phép tính đơn giản ngày naymáy tính có tốc độ xử lý rất cao, nó có thể xử lý hàng tỉ phép tính phức tạp trong vòngmột giây Để khai thác được những ưu điểm đó điện tử tự động hoá đã có sự bắt tay vớimáy vi tính Nhờ có máy vi tính mà chúng ta có thể làm được nhiều công việc mà khôngphải tốn nhiều công sức Xuất phát từ thực tế đó, bằng những kiến thức đã được học và

sự giúp đở của thầy cô, em đã quyết định tìm hiểu về đề tài “Giao tiếp máy tính điều

khiển và giám sát thiết bị điện”

I.2.TẦM QUAN TRỌNG CỦA ĐỀ TÀI.

Đây là một đề tài nghiên cứu mang tính thực tiễn trong việc vận dụng các kiến thức

đã được học dưới mái trường Cao Đẳng vào trong thực tế

Về mặt khoa học, đề tài sẽ giúp cho nhóm sinh viên thực hiện hiểu rõ thêm vềTruyền dữ liệu điều khiển và Cách điều khiển mạch điện thông qua máy tính

Về mặt thực tiễn, đề tài này có thể áp dụng vào thực tế để điều khiển một số thiết bịtrong nhà như đèn điện, quạt máy v v

I.3.GIỚI HẠN ĐỀ TÀI.

Do thời gian thực hiện đề tài có hạn và kiến thức còn hạn chế nên nhóm sinh viênthực hiện đã đưa ra những giới hạn sau:

- Điều khiển cùng lúc tối đa 16 thiết bị

- Mạch phải hoạt động tốt không bị nhiễu trên đường truyền tín hiệu

- Mạch phải chạy ổn định trong quá trình làm việc

- Mạch đo nhiệt độ chạy ổn định

I.4 MỤC ĐÍCH NGHIÊN CỨU.

Khi bắt tay vào thực hiện đề tài này, nhóm thực hiện mong muốn rằng sảnphẩm của đề tài phải được ứng dụng Và đặc biệt, đối với nhóm nghiên cứu đây là điềukiện, cơ hội, cách thức để củng cố, bổ sung và ứng dụng những gì đã được lĩnh hội đượctrong lý thuyết cũng như thực tập Từ đó sử dụng và ứng dụng nó nhằm đáp ứng cho nhucầu thực tế Đây chính là những tiền đề đầu tiên để mỗi thành viên trong nhóm có đượcmột số kiến thức chuyên ngành nhất định, làm hành trang cho công việc sau này

I.5 ĐỐI TƯỢNG NGHIÊN CỨU.

Đối tượng nghiên cứu của đề tài này chính là:

- Cách thức giao tiếp giữa mạch đo và máy tính

- Cách thức giao tiếp giữa mạch đo và mạch điều khiển

Trang 3

- Cách lập trình cho vi điều khiển để cho dữ liệu có thể thu, phát liên tục màkhông bị ngắt quãng

- Cách cân chỉnh mạch đo, đảm bảo độ chính xác của mạch đo

I.6.PHƯƠNG PHÁP VÀ PHƯƠNG TIỆN NGHIÊN CỨU.

a Phương pháp nghiên cứu.

Trong quá trình nghiên cứu, nhóm sinh viên thực hiện chủ yếu dựa vào haiphương pháp chính:

- Phương pháp tham khảo tài liệu: Thu thập các tài liệu liên quan đến giao tiếp máytính, Truyền số liệu, Kỹ thuật mạch điện tử, Thiết kế mạch điện tử và Phương pháp nghiêncứu khoa học Sau đó, nhóm sinh viên vận dụng các kiến thức hiện có để tổng hợp các tàiliệu, sau cùng thiết kế ra mạch điện phù hợp với các yêu cầu mà ban đầu nhóm đã đề ra

- Phương pháp quan sát và thực nghiệm: Sau khi đã có mạch theo tính toán lýthuyết, nhóm sinh viên thực hiện đã thi công mạch thực tế theo đúng sơ đồnguyên lý đãvạch ra Do không có các thiết bị đo chuyên dụng thích hợp, nhóm sinh viên thực hiện đãcân chỉnh thủ công từng khối, đo điện áp và dòng điện ngõ ra của chúng Sau đó, nhóm đã

sử dụng kết quả cân chỉnh này để điều chỉnh lại lý thuyết một cách hợp lý

b Phương tiện nghiên cứu.

a Các tài liệu liên quan đến đề tài

b Bộ nguồn ổn áp tuyến tính 5V, ±12V

c Đồng hồ đo VOM kim và số

d Máy tính

Trang 4

CHƯƠNG II:

GIỚI THIỆU PIC 16F877A

Trang 5

II 1.Sơ đồ chân:

Sơ đồ chân của Vi điều khiển PIC16F877A

II 2.Một vài thông số kỹ thuật của pic16F877A:

Đâ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 chophép là 20 MHz với một chu kì lệnh là 200ns Bộ nhớ chương trình 8Kx14 bit, bộ nhớ dữliệu 368 byte RAM và bộ nhớ dữ liệu EEPROM với dung lượng 256 byte Số PORT I/O

là 5 với 33 pin 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ựavà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ố, bộ postcaler

- Hai bộ Capture/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 Analog:

- 8 kênh chuyển đổi ADC 10 bit

- Hai bộ so sánh

Trang 6

- Bên cạnh đó là một vài đặc tính khác của vi điều khiển như:

- 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 được chương trình ngay trên mạch điện ICSP (In Circuit SerialProgramming)thông qua 2 chân

- 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

II.3 Sơ đồ khối của pic 16F877A :

Sơ đồ khối vi điều khiển PIC16F877A

Trang 7

II.4 Tổ chức bộ nhớ :

Cấu trúc bộ nhớ của vi điều khiển PIC16F877A bao gồm bộ nhớ chương trình(Program memory) và bộ nhớ dữ liệu (Data Memory)

a.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 page3) Như vậy bộ nhớ chương trình có khả năng chứa được 8*1024 = 8192 lệnh (vì mộtlệnh sau khi mã hóa sẽ có dung lượng 1 word (14 bit)

Khi vi điều khiển được reset, bộ đếm chương trình sẽ chỉ đến địa chỉ 0000h (Resetvector) Khi có ngắt xảy ra, bộ đếm chương trình sẽ chỉ đến địa chỉ 0004h (Interruptvector) Bộ nhớ chương trình không bao gồm bộ nhớ stack và không được địa chỉ hóabởibộ đếm chương trình

b Bộ nhớ dữ liệu.

Bộ nhớ dữ liệu của PIC là bộ nhớ EEPROM được chia ra làm nhiều bank Đốivới PIC16F877A bộ nhớ dữ liệu được chia ra làm 4 bank Mỗi bank có dung lượng 128byte, 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 PurposeRegister) nằm ở vùng địa chỉ còn lại trong bank 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 bank của bộ nhớ dữ liệugiú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 Sơ đồ cụthể của bộ nhớ dữ liệu PIC16F877A như sau:

Trang 8

Thang ghi chức năng đặc biệt SFR:

Đây là các thanh ghi được sử dụng bởi CPU hoặc được dùng để thiết lập và điềukhiển các khối chức năng được tích hợp bên trong vi điều khiển Có thể phân thanh ghiSFR làm hai lọai: thanh ghi SFR liên quan đến các chức năng bên trong (CPU) và thanhghi SRF dùng để thiết lập và điều khiển các khối chức năng bên ngoài (ví dụ như ADC,PWM, …)

Thanh ghi STATUS (03h, 83h, 103h, 183h):

Thanh ghi chứa kết quả thực hiện phép toán của khối ALU, trạng thái reset và cácbit chọn bank cần truy xuất trong bộ nhớ dữ liệu

Trang 9

Thanh ghi OPTION_REG (81h, 181h):

Thanh ghi này cho phép đọc và ghi, cho phép điều khiển chức năng pull-up của cácchân trong PORTB, xác lập các tham số về xung tác động, cạnh tác động của ngắt ngoại

vi và bộ đếm Timer0

Thanh ghi INTCON (0Bh, 8Bh,10Bh, 18Bh):

Thanh ghi cho phép đọc và ghi, chứa các bit điều khiển và các bit cờ hiệu khitimer0 bị tràn, ngắt ngoại vi RB0/INT và ngắt interrputon- change tại các chân củaPORTB

Thanh ghi PIE1 (8Ch):

Chứa các bit điều khiển chi tiết các ngắt của các khối chức năng ngoại vi

Thanh ghi PIR1 (0Ch):

Chứa cờ ngắt của các khối chức năng ngoại vi, các ngắt này được cho phép bởicác bit điều khiển chứa trong thanh ghi PIE1

Thanh ghi PIE2 (8Dh):

Chứa các bit điều khiển các ngắt của các khối chức năng CCP2, SSP bus, ngắt của

bộ so sánh và ngắt ghi vào bộ nhớ EEPROM

Thanh ghi PIR2 (0Dh):

Chứa các cờ ngắt của các khối chức năng ngoại vi, các ngắt này được cho phépbởi các bit điều khiển chứa trong thanh ghi PIE2

Thanh ghi PCON (8Eh):

Chứa các cờ hiệu cho biết trạng thái các chế độ reset của vi điều khiển

Trang 10

Thanh ghi mục đích GPR:

Các thanh ghi này có thể được truy xuất trực tiếp hoặc gián tiếp thông qua thanhghi FSG (File Select Register) Đây là các thanh ghi dữ liệu thông thường, người sử dụng

có thể tùy theo mục đích chương trình mà có thể dùng các thanh ghi này để chứa các biến

số, hằng số, kết quả hoặc các tham số phục vụ cho chương trình

tự động được lấy ra từ trong stack, vi điều khiển sẽ thực hiện tiếp chương trình theo đúngqui trình định trước

Bộ nhớ Stack trong vi điều khiển PIC họ 16F87xA có khả năng chứa được 8 địachỉ và hoạt động theo cơ chế xoay vòng Nghĩa là giá trị cất vào bộ nhớ Stack lần thứ 9 sẽghi đè lên giá trị cất vào Stack lần đầu tiên và giá trị cất vào bộ nhớ Stack lần thứ 10 sẽghi đè lên giá trị cất vào Stack lần thứ 2

Cần chú ý là không có cờ hiệu nào cho biết trạng thái stack, do đó ta không biếtđược khi nào stack tràn Bên cạnh đó tập lệnh của vi điều khiển dòng PIC cũng không cólệnh POP hay PUSH, các thao tác với bộ nhớ stack sẽ hoàn toàn được điều khiển bởiCPU

II.5.Các cổng xuất nhập của Pic16F877A.

Cổng xuất nhập (I/O port) chính là phương tiện mà vi điều khiển dùng để tương tácvới thế giới bên ngoài Bên cạnh đó, do vi điều khiển được tích hợp sẵn bên trong các đặctính giao tiếp ngoại vi nên bên cạnh chức năng là cổng xuất nhập thông thường, một sốchân xuất nhập 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ínhngoại vi nêu trên đối với thế giới bên ngoài

Vi điều khiển PIC16F877A có 5 cổng xuất nhập, bao gồm PORTA, PORTB, PORTC,PORTD và PORTE

a Port A:

PORTA (RPA) bao gồm 6 I/O pin Đây là các chân “hai chiều” (bidirectional pin),nghĩa là có thể xuất và nhập được Chức năng I/O này được điều khiển bởi thanh ghiTRISA (địa chỉ 85h) Muốn xác lập chức năng của một chân trong PORTA là input, ta

“set” bit điều khiển tương ứng với chân đó trong thanh ghi TRISA và ngược lại, muốnxác lập chức năng của một chân trong PORTA là output, ta “clear” bit điều khiển tươngứng với chân đó trong thanh ghi TRISA Thao tác này hoàn toàn tương tự đối với cácPORT và các thanh ghi điều khiển tương ứng TRIS (đối với PORTA là TRISA, đối vớiPORTB là TRISB, đối với PORTC là TRISC, đối với PORTD là TRISD vàđối vớiPORTE là TRISE) Bên cạnh đó PORTA còn là ngõ ra của bộ ADC, bộ so sánh, ngõ vào

Trang 11

analog ngõ vào xung clock của Timer0 và ngõ vào của bộ giao tiếp MSSP (MasterSynchronous Serial Port).

Các thanh ghi SFR liên quan đến PORTA bao gồm:

- PORTA (địa chỉ 05h) : chứa giá trị các pin trong PORTA

- TRISA (địa chỉ 85h) : điều khiển xuất nhập

- CMCON (địa chỉ 9Ch) : thanh ghi điều khiển bộ so sánh

- CVRCON (địa chỉ 9Dh) : thanh ghi điều khiển bộ so sánh điện áp

- ADCON1 (địa chỉ 9Fh) : thanh ghi điều khiển bộ ADC

b Port B:

PORTB (RPB) gồm 8 pin I/O Thanh ghi điều khiển xuất nhập tương ứng là TRISB.Bên cạnh đó một số chân của PORTB còn được sử dụng trong quá trình nạp chương trìnhcho vi điều khiển với các chế độ nạp khác nhau PORTB còn liên quan đến ngắt ngoại vi

và bộ Timer0 PORTB còn được tích hợp chức năng điện trở kéo lên được điều khiển bởichương trình

Các thanh ghi SFR liên quan đến PORTB bao gồm:

- PORTB (địa chỉ 06h,106h) : chứa giá trị các pin trong PORTB

- TRISB (địa chỉ 86h,186h) : điều khiển xuất nhập

- OPTION_REG (địa chỉ 81h,181h) : điều khiển ngắt ngoại vi và bộ Timer0

c Port C:

PORTC (RPC) gồm 8 pin I/O Thanh ghi điều khiển xuất nhập tương ứng là TRISC.Bên cạnh đó PORTC còn chứa các chân chức năng của bộ so sánh, bộ Timer1, bộ PWM

và các chuẩn giao tiếp nối tiếp I2C, SPI, SSP, USART

Các thanh ghi điều khiển liên quan đến PORTC:

- PORTC (địa chỉ 07h) : chứa giá trị các pin trong PORTC

- TRISC (địa chỉ 87h) : điều khiển xuất nhập

d Port D:

PORTD (RPD) gồm 8 chân I/O, thanh ghi điều khiển xuất nhập tương ứng làTRISD.PORTD còn là cổng xuất dữ liệu của chuẩn giao tiếp PSP (Parallel Slave Port) Các thanh ghi liên quan đến PORTD bao gồm:

- Thanh ghi PORTD : chứa giá trị các pin trong PORTD

- Thanh ghi TRISD : điều khiển xuất nhập

- Thanh ghi TRISE : điều khiển xuất nhập PORTE và chuẩn giao tiếp PSP

e Port E:

PORTE (RPE) gồm 3 chân I/O Thanh ghi điều khiển xuất nhập tương ứng làTRISE Các chân của PORTE có ngõ vào analog Bên cạnh đó PORTE còn là các chânđiều khiển của chuẩn giao tiếp PSP

Các thanh ghi liên quan đến PORTE bao gồm:

- PORTE : chứa giá trị các chân trong PORTE

- TRISE : điều khiển xuất nhập và xác lập các thông số cho chuẩn giao tiếpPSP

- ADCON1 : thanh ghi điều khiển khối ADC

Trang 12

II.6.Timer 0.

Đây là một trong ba bộ đếm hoặc bộ định thời của vi điều khiển PIC16F877A.Timer0 là bộ đếm 8 bit được kết nối với bộ chia tần số (prescaler) 8 bit Cấu trúc củaTimer0 cho phép ta lựa chọn xung clock tác động và cạnh tích cực của xung clock NgắtTimer0 sẽ xuất hiện khi Timer0 bị tràn

Sơ đồ khối của Timer 0

Muốn Timer0 hoạt động ở chế độ Timer ta clear bit TOSC (OPTION_REG<5>),khi đó giá trị thanh ghi TMR0 sẽ tăng theo từng chu kì xung đồng hồ (tần số vào Timer0bằng ¼ tần số oscillator) Khi giá trị thanh ghi TMR0 từ FFh trở về 00h, ngắt Timer0 sẽxuất hiện Thanh ghi TMR0 cho phép ghi và xóa được giúp ta ấn định thời điểm ngắtTimer0 xuất hiện một cách linh động Muốn Timer0 hoạt động ở chế độ counter ta set bitTOSC (OPTION_REG<5>) Khi đó xung tác động lên bộ đếm được lấy từ chânRA4/TOCK1 Bit TOSE (OPTION_REG<4>) cho phép lựa chọn cạnh tác động vào bộtđếm Cạnh tác động sẽ là cạnh lên nếu TOSE=0 và cạnh tác động sẽ là cạnh xuống nếuTOSE=1 Khi thanh ghi TMR0 bị tràn, bit TMR0IF (INTCON<2>) sẽ được set Đâychính là cờ ngắt của Timer0 Cờ ngắt này phải được xóa bằng chương trình trước khi bộđếm bắt đầu thực hiện lại quá trình đếm Ngắt Timer0 không thể “đánh thức” vi điềukhiển từ chế độ sleep

Trang 13

Các lệnh tác động lên giá trị thanh ghi TMR0 sẽ xóa chế độ hoạt động củaprescaler Khi đối tượng tác động là Timer0, tác động lên giá trị thanh ghi TMR0 sẽ xóaprescaler nhưng không làm thay đổi đối tượng tác động của prescaler Khi đối tượng tácđộng là WDT, lệnh CLRWDT sẽ xóa prescaler, đồng thời prescaler sẽ ngưng tác vụ hỗ trợcho WDT.

Các thanh ghi điều khiển liên quan đến Timer0 bao gồm:

- TMR0 (địa chỉ 01h, 101h) : chứa giá trị đếm của Timer0

- INTCON (địa chỉ 0Bh, 8Bh, 10Bh, 18Bh): cho phép ngắt hoạt động (GIE vàPEIE)

- OPTION_REG (địa chỉ 81h, 181h): điều khiển prescaler

II.7.Timer 1.

Timer1 là bộ định thời 16 bit, giá trị của Timer1 sẽ được lưu trong hai thanh ghi(TMR1H:TMR1L) Cờ ngắt của Timer1 là bit TMR1IF (PIR1<0>) Bit điều khiển củaTimer1 sẽ là TMR1IE (PIE<0>) Tương tự như Timer0, Timer1 cũng có hai chế độ hoạtđộng: chế độ định thời (timer) với xung kích là xung clock của oscillator (tần số củatimer bằng ¼ tần số của oscillator) và chế độ đếm (counter) với xung kích là xung phảnánh các sự kiện cần đếm lấy từ bên ngoài thông qua chân RC0/T1OSO/T1CKI (cạnh tácđộng là cạnh lên) Việc lựa chọn xung tác động (tương ứng với việc lựa chọn chế độ hoạtđộng là timer hay counter) được điều khiển bởi bit TMR1CS (T1CON<1>) Sau đây là sơ

đồ khối của Timer1:

Các thanh ghi liên quan đến Timer1 bao gồm:

- INTCON (địa chỉ 0Bh, 8Bh, 10Bh, 18Bh): cho phép ngắt hoạt động (GIE vàPEIE)

- PIR1 (địa chỉ 0Ch): chứa cờ ngắt Timer1 (TMR1IF)

- PIE1( địa chỉ 8Ch): cho phép ngắt Timer1 (TMR1IE)

- TMR1L (địa chỉ 0Eh): chứa giá trị 8 bit thấp của bộ đếm Timer1

- TMR1H (địa chỉ 0Eh): chứa giá trị 8 bit cao của bộ đếm Timer1

Trang 14

- T1CON (địa chỉ 10h): xác lập các thông số cho Timer1.

II.8 Timer 2.

Timer2 là bộ định thời 8 bit và được hỗ trợ bởi hai bộ chia tần số prescaler vàpostscaler Thanh ghi chứa giá trị đếm của Timer2 là TMR2 Bit cho phép ngắt Timer2tác động là TMR2ON (T2CON<2>) Cờ ngắt của Timer2 là bit TMR2IF (PIR1<1>).Xung ngõ vào (tần số bằng ¼ tần số oscillator) được đưa qua bộ chia tần số prescaler 4bit (với các tỉ số chia tần số là 1:1, 1:4 hoặc 1:16 và được điều khiển bởi các bitT2CKPS1:T2CKPS0 (T2CON<1:0>))

Ngoài ra ngõ ra của Timer2 còn được kết nối với khối SSP, do đó Timer2 cònđóng vai trò tạo ra xung clock đồng bộ cho khối giao tiếp SSP

Các thanh ghi liên quan đến Timer2 bao gồm:

- INTCON (địa chỉ 0Bh, 8Bh, 10Bh, 18Bh): cho phép toàn bộ các ngắt (GIE vàPEIE)

- PIR1 (địa chỉ 0Ch): chứa cờ ngắt Timer2 (TMR2IF)

- PIE1 (địa chị 8Ch): chứa bit điều khiển Timer2 (TMR2IE)

- TMR2 (địa chỉ 11h): chứa giá trị đếm của Timer2

- T2CON (địa chỉ 12h): xác lập các thông số cho Timer2

- PR2 (địa chỉ 92h): thanh ghi hỗ trợ cho Timer2

Timer0 và Timer2 là bộ đếm 8 bit (giá trị đếm tối đa là FFh), trong khi Timer1 là

bộ đếm 16 bit (giá trị đếm tối đa là FFFFh) Timer0, Timer1 và Timer2 đều có hai chế độhoạt động là timer và counter Xung clock có tần số bằng ¼ tần số của oscillator Xungtác động lên Timer0 được hỗ trợ bởi prescaler và có thể được thiết lập ở nhiều chế độkhác nhau (tần số tác động, cạnh tác động) trong khi các thông số của xung tác động lênTimer1 là cố định Timer2 được hỗ trợ bởi hai bộ chia tần số prescaler và postcaler độclập, tuy nhiên cạnh tác động vẫn được cố định là cạnh lên Timer1 có quan hệ với khốiCCP, trong khi Timer2 được kết nối với khối SSP

Sơ đồ khối của Timer 2

II.9.ADC

ADC (Analog to Digital Converter) là bộ chuyển đổi tín hiệu giữa hai dạng tương tự

và số PIC16F877A có 8 ngõ vào analog (RA4:RA0 và RE2:RE0) Hiệu điện thế chuẩn

Trang 15

VREF có thể được lựa chọn là VDD, VSS hay hiệu điện thể chuẩn được xác lập trên haichân RA2 và RA3 Kết quả chuyển đổi từ tín tiệu tương tự sang tín hiệu số là 10 bit sốtương ứng và được lưu trong hai thanh ghi ADRESH:ADRESL.

Các thanh ghi liên quan đến bộ chuyển đổi ADC bao gồm:

- INTCON (địa chỉ 0Bh, 8Bh, 10Bh, 18Bh): cho phép các ngắt (các bit GIE,PEIE)

- PIR1 (địa chỉ 0Ch): chứa cờ ngắt AD (bit ADIF)

- PIE1 (địa chỉ 8Ch): chứa bit điều khiển AD (ADIE)

- ADRESH (địa chỉ 1Eh) và ADRESL (địa chỉ 9Eh): các thanh ghi chứa kết quảchuyển đổi AD

- ADCON0 (địa chỉ 1Fh) và ADCON1 (địa chỉ 9Fh): xác lập các thông số cho bộchuyển đổi AD

- PORTA (địa chỉ 05h) và TRISA (địa chỉ 85h): liên quan đến các ngõ vào analog

ở PORTA

- PORTE (địa chỉ 09h) và TRISE (địa chỉ 89h): liên quan đến các ngõ vào analog

ở PORTE

II.10 Giao tiếp nối tiếp.

a USART (Universal Synchronous Asynchronous Receiver Transmitter) :

Là một trong hai chuẩn giao tiếp nối tiếp.USART còn được gọi là giao diện giaotiếp nối tiếp SCI (Serial Communication Interface) Có thể sử dụng giao diện này cho cácgiao tiếp với các thiết bị ngoại vi, với các vi điều khiển khác hay với máy tính Các dạngcủa giao diện USART ngoại vi bao gồm:

Trong đó X là giá trị của thanh ghi RSBRG ( X là số nguyên và 0<X<255)

Các thanh ghi liên quan đến BRG bao gồm:

- TXSTA (địa chỉ 98h): chọn chế độ đòng bộ hay bất đồng bộ ( bit SYNC) vàchọn mức tốc độ baud (bit BRGH)

- RCSTA (địa chỉ 18h): cho phép hoạt động cổng nối tiếp (bit SPEN)

- RSBRG (địa chỉ 99h): quyết định tốc độ baud

Trang 16

b.USART bất đồng bộ:

Ở chế độ truyền này USART hoạt động theo chuẩn NRZ (None-Return-to-Zero),

nghĩa là các bit truyền đi sẽ bao gồm 1 bit Start, 8 hay 9 bit dữ liệu (thông thường

là 8 bit) và 1 bit Stop Bit LSB sẽ được truyền đi trước Các khối truyền và nhận data độclập với nhau sẽ dùng chung tần số tương ứng với tốc độ baud cho quá trình dịch dữ liệu(tốc độ baud gấp 16 hay 64 lần tốc độ dịch dữ liệu tùy theo giá trị của bit BRGH), và đểđảm bảo tính hiệu quả của dữ liệu thì hai khối truyền và nhận phải dùng chung một địnhdạng dữ liệu

Các thanh ghi liên quan đến quá trình truyền dữ liệu bằng giao diện USART bấtđồng bộ:

- Thanh ghi INTCON (địa chỉ 0Bh, 8Bh, 10Bh, 18Bh): cho phép tất cả cácngắt

- Thanh ghi PIR1 (địa chỉ 0Ch): chứa cờ hiệu TXIF

- Thanh ghi PIE1 (địa chỉ 8Ch): chứa bit cho phép ngắt truyền TXIE

- Thanh ghi RCSTA (địa chỉ 18h): chứa bit cho phép cổng truyền dữ liệu (haipin RC6/TX/CK và RC7/RX/DT)

- Thanh ghi TXREG (địa chỉ 19h): thanh ghi chứa dữ liệu cần truyền

- Thanh ghi TXSTA (địa chỉ 98h): xác lập các thông số cho giao diện

- Thanh ghi SPBRG (địa chỉ 99h): quyết định tốc độ baud

c USART đồng bộ:

Giao diện USART đồng bộ được kích hoạt bằng cách set bit SYNC Cổng giao tiếpnối tiếp vẫn là hai chân RC7/RX/DT, RC6/TX/CK và được cho phép bằng cách set bitSPEN USART cho phép hai chế độ truyền nhận dữ liệu là Master mode và Slave mode.Master mode được kích hoạt bằng cách set bit CSRC (TXSTA<7>), Slave mode đượckích hoạt bằng cách clear bit CSRC Điểm khác biệt duy nhất giữa hai chế độ này làMaster mode sẽ lấy xung clock đồng bộ từ bộ tao xung baud BRG còn Slave mode lấyxung clock đồng bộ từ bên ngoài qua chân RC6/TX/CK Điều này cho phép Slave modehoạt động ngay cả khi vi điều khiển đang ở chế độ sleep

Các thanh ghi liên quan đến quá trình truyền dữ liệu bằng giao diện USART đồng

bộ Master mode:

- Thanh ghi INTCON (địa chỉ 0Bh, 8Bh, 10Bh, 18Bh): cho phép tất cả cácngắt

- Thanh ghi PIR1 (địa chỉ 0Ch): chứa cờ hiệu TXIF

- Thanh ghi PIE1 (địa chỉ 8Ch): chứa bit cho phép ngắt truyền TXIE

- Thanh ghi RCSTA (địa chỉ 18h): chứa bit cho phép cổng truyền dữ liệu (haipin RC6/TX/CK và RC7/RX/DT)

- Thanh ghi TXREG (địa chỉ 19h): thanh ghi chứa dữ liệu cần truyền

- Thanh ghi TXSTA (địa chỉ 98h): xác lập các thông số cho giao diện

- Thanh ghi SPBRG (địa chỉ 99h): quyết định tốc độ baud

Trang 17

II.11.Cổng giao tiếp song song psp (parallel slave port).

Ngoài các cổng nối tiếp và các giao điện nối tiếp được trình bày ở phần trên, vi điềukhiển pic16F877A còn được hỗ trợ một cổng giao tiếp song song và chuẩn giao tiếp songsong thông qua portd và porte do cổng song song chỉ hoạt động ở chế độ slave mode nên

vi điều khiển khi giao tiếp qua giao diện này sẽ chịu sự điều khiển của thiết bị bên ngoàithông qua các pin của porte, trong khi dữ liệu sẽ được đọc hoặc ghi theo dạng bất đồng

bộ thông qua 8 pin của portd

Các thanh ghi liên quan đến psp bao gồm:

- Thanh ghi portd (địa chỉ 08h): chứa dữ liệu cần đọc hoặc ghi

- Thanh ghi porte (địa chỉ 09h): chứa giá trị các pin porte

- Thanh ghi trise (địa chỉ 89h): chứa các bit điều khiển porte và psp

- Thanh ghi pir1 (địa chỉ 0ch): chứa cờ ngắt pspif

- Thanh ghi pie1 (địa chỉ 8ch): chứa bit cho phép ngắt psp

- Thanh ghi adcon1 (địa chỉ 9fh): điều khiển khối adc tại porte

II.12.Các đặc tính của Oscillator.

Pic16F877A có khả năng sử dụng một trong 4 loại oscillator, đó là:

- LP: (low power crystal)

- XT: thạch anh bình thường

- HS: (high-speed crystal)

- RC: (resistor/capacitor) dao động do mạch rc tạo ra đối với các loại oscillator

lp, hs, xt, Oscillator được gắn vào vi điều khiển thôngqua các pin osc1/clki vàOsc2/Clko.Đối với các ứng dụng không cần các loại oscillator tốc độ cao, ta có thể sửdụng mạch dao động rc làm nguồn cung cấp xung hoạt động cho vi vi điều khiển tần sốtạo ra phụ thuộc vào các giá trị điện áp, giá trị điện trở và tụ điện, bên cạnh đó là sự ảnhhưởng của các yếu tố như nhiệt độ, chất lượng của các linh kiện.Các linh kiện sử dụngcho mạch rc oscillator phải bảo đảm các giá trị sau:

- 3 k < rext < 100 k

- cext >20 pf

II.13 Các chế độ Reset.

Có nhiều chế độ reset vi điều khiển, bao gồm:

- Power-on Reset POR (Reset khi cấp nguồn hoạt động cho vi điều khiển)

- Reset trong quá trình hoạt động

- Từ chế độ sleep

- WDT reset (reset do khối WDT tạo ra trong quá trình hoạt động).WDT wake

up từ chế độ sleep

- Brown-out reset (BOR)

- Power-on reset (POR): Đây là xung reset do vi điều khiển tạo ra khi phát hiệnnguồn cung cấp VDD Khi hoạt động ở chế độ bình thường, vi điều khiển cần được đảmbảo các thông số về dòng điện, điện áp để hoạt động bình thường Nhưng nếu các tham sốnày không được đảm bảo, xung reset do POR tạo ra sẽ đưa vi điều khiển về trạng thái

Trang 18

reset và chỉ tiếp tục hoạt động khi nào các tham số trên được đảm bảo.

- Power-up Timer (PWRT): đây là bộ định thời hoạt động dựa vào mạch RCbên trong vi điều khiển Khi PWRT được kích hoạt, vi điều khiển sẽ được đưa về trạngthái reset.PWRT sẽ tạo ra một khoảng thời gian delay (khoảng 72 ms) để VDD tăng đếngiá trị thích hợp

- Oscillator Start-up Timer (OST): OST cung cấp một khoảng thời gian delaybằng 1024 chu kì xung của oscillator sau khi PWRT ngưng tác động (vi điều khiển đã đủđiều kiện hoạt động) để đảm bảo sự ổn định của xung do oscillator phát ra Tác động củaOST còn xảy ra đối với POR reset và khi vi điều khiển được đánh thức từ chế đợ sleep.OST chỉ tác động đối với các lọai oscillator là XT, HS và LP

- Brown-out reset (BOR): Nếu VDD hạ xuống thấp hơn giá trị VBOR (khoảng4V) và kéo dài trong khoảng thời gian lớn hơn TBOR (khoảng 100 us), BOR được kíchhoạt và vi điều khiển được đưa về trạng thái BOR reset Nếu điện áp cung cấp cho vi điềukhiển hạ xuống thấp hơn VBOR trong khoảng thời gian ngắn hơn TBOR, vi điều khiển sẽkhông được reset Khi điện áp cung cấp đủ cho vi điều khiển hoạt động, PWRT được kíchhoạt để tạo ra một khoảng thời gian delay (khoảng 72ms) Nếu trong khoảng thời giannày điện áp cung cấp cho vi điều khiển lại tiếp tục hạ xuống dưới mức điện áp VBOR,BOR reset sẽ lại được kích hoạt khi vi điều khiển đủ điện áp hoạt động Một điểm cầnchú ý là khi BOR reset được cho phép, PWRT cũng sẽ hoạt động bất chấp trạng thái củabit PWRT

- Tóm lại để vi điều khiển hoạt động được từ khi cấp nguồn cần trải qua cácbước sau: POR tác động.PWRT (nếu được cho phép hoạt động) tạo ra khoảng thời gian

delay TPWRT để ổn định nguồn cung cấp.OST (nếu được cho phép) tạo ra khoảng thời

gian delay bằng 1024 chu kì xung của oscillator để ổn định tần số của oscillator.Đến thờiđiểm này vi điều khiển mới bắt đầu hoạt động bình thường Thanh ghi điều khiển và chỉthị trạng thái nguồn cung cấp cho vi điều khiển là thanh ghi PCON

Trang 19

II.14.Ngắt.

PIC16F877A có đến 15 nguồn tạo ra hoạt động ngắt được điều khiển bởi thanh ghiINTCON (bit GIE) Bên cạnh đó mỗi ngắt còn có một bit điều khiển và cờ ngắt riêng.Các cờ ngắt vẫn được set bình thường khi thỏa mãn điều kiện ngắt xảy ra bất chấp trạngthái của bit GIE, tuy nhiên hoạt động ngắt vẫn phụ thuôc vào bit GIE và các bit điềukhiển khác Bit điều khiển ngắt RB0/INT và TMR0 nằm trong thanh ghi INTCON, thanhghi này còn chứa bit cho phép các ngắt ngoại vi PEIE Bit điều khiển các ngắt nằm trongthanh ghi PIE1 và PIE2 Cờ ngắt của các ngắt nằm trong thanh ghi PIR1 và PIR2

Trong một thời điểm chỉ có một chương trình ngắt được thực thi, chương trìnhngắt được kết thúc bằng lệnh RETFIE Khi chương trình ngắt được thực thi, bit GIE tựđộng được xóa, địa chỉ lệnh tiếp theo của chương trình chính được cất vào trong bộ nhớStack và bộ đếm chương trình sẽ chỉ đến địa chỉ 0004h Lệnh RETFIE được dùng đểthoát khỏi chương trình ngắt và quay trở về chương trình chính, đồng thời bit GIE cũng

sẽ được set để cho phép các ngắt hoạt động trở lại Các cờ hiệu được dùng để kiểm trangắt nào đang xảy ra và phải được xóa bằng chương trình trước khi cho phép ngắt tiếptục hoạt động trở lại để ta có thể phát hiện được thời điểm tiếp theo mà ngắt xảy ra

Đối với các ngắt ngoại vi như ngắt từ chân INT hay ngắt từ sự thay đổi trạng tháicác pin của PORTB (PORTB Interrupt on change), việc xác định ngắt nào xảy ra cần 3hoặc 4 chu kì lệnh tùy thuộc vào thời điểm xảy ra ngắt

Trang 20

Cần chú ý là trong quá trình thực thi ngắt, chỉ có giá trị của bộ đếm chương trình được cất vào trong Stack, trong khi một số thanh ghi quan trọng sẽ không được cất và cóthể bị thay đổi giá trị trong quá trình thực thi chương trình ngắt Điều này nên được xử líbằng chương trình để tránh hiện tượng trên xảy ra.

Sơ đồ logic của tất cả các ngắt trong vi điều khiển PIC16F877A

Trang 21

CHƯƠNG III :

ĐO NHIỆT ĐỘ

Trang 22

III.1.Thang nhiệt độ và điểm chuẩn nhiệt độ:

Thang nhiệt độ : Các tính chất vật lí của vật liệu phụ thuộc vào nhiệt độ của chúng

Từ sự thay đổi nhiệt của một đặc trưng vật lí của vật liệu cho trước người ta luôn luôn cóthể xác định một thang đo nhiệt độ cho phép đo nhiệt độ và đặc biệt là nhận biết sự cânbằng của hai nhiệt độ cho phép đo nhiệt độ Tuy thế thang nhiệt độ như thế là hoàn toàntuỳ tiện bởi vì nó liên quan đến 1 tính chất đặc biệt: nó không cho phép gán cho giá trịnhiệt độ một ý nghĩa vật lí riêng Chỉ có xuất phát từ các định luật nhiệt động học mới cóthể xác định thang nhiệt độ đặc trưng tổng quát cho mọi trường hợp

Điểm chuẩn nhiệt độ : Nhiệt độ đo được (nhờ một điện trở hay một cặp nhiệt)chính bằng nhiệt độ của cảm biến và kí kiệu là Tc Nó phụ thuộc vào nhiệt độ của môitrường Tx và sự trao đổi nhiệt độ trong đó Nhiệm vụ của người làm thực nghiệm là làmthế nào để giảm hiệu số Tx-Tc xuống nhỏ nhất Có 2 biện pháp để giảm sự khác biệt giữaTx-Tc:

- Tăng trao đổi nhiệt giữa cảm biến và môi trường đo

- Giảm trao đổi nhiệt giữa cảm biến và môi trường bên ngoài

III.2.Các Phương Pháp Đo Nhiệt Độ :

Việc đo nhiệt độ được tiến hành nhờ các dụng cụ hổ trợ chuyên biệt như:

III.2.1 Cặp nhiệt điện ( Thermocouples ).

Linh kiện gồm hai thanh kim loại hoặc bán dẫn khác loại, hàn với nhau một đầu,hoạt độngnhờ hiện tượng nhiệt điện hay hiệu ứng Peltier-Seebeck Giữa hai đầu dây củacặp nhiệt điện sẽ xuất hiện một sức điện động một chiều có trị số phụ thuộc vào hiệu sốnhiệt độ giữa mối hàn và các đầu không hàn

Trang 23

Ðiện thế này phụ thuộc vào các kim loại được dùng và nhiệt độ tại điểm tiếp xúc, thông thường điện thế biến đổi cỡ 7 đến 75 mV ứng với một độ C Khoảng nhiệt độ đođược của cặp nhiệt điện khá cao, độ bền tốt và tính ổn định cao Tuy nhiên cặp nhiệt điệncũng có một số nhược điểm cần khắc phục Trước hết đó là mức ra quá thấp cho nên cầnphải có bộ khuếch đại có hệ số lớn Thứ hai, điện áp ra không tuyến tính với nhiệt độ,điều này có thể giải quyết bằng cách dùng mạch khuếch đại có độ khuếch đại phụ thuộcgiá trị của tín hiệu

Tuỳ thuộc vào nhiệt độ cần đo mà dùng các loại cặp nhiệt điện khác nhau:

- Platin- Platin Radi (1.300OC);

- Cromen - Alumen (1.000 OC);

- Cromen - Copen (tới 600 OC);

- Sắt - Copen (tới 6000C)

Đối với khoảng đo từ +600 trở xuống người ta sử dụng cặp nhiệt điện

III.2.2 Điện trở dò nhiệt (RTD)

Ðiện trở dò nhiệt (Resistance Temperature Detector -RTD) là điện trở có giá trịthay đổi theo nhiệt độ RTD được cấu tạo bởi một sợi hay một lá mỏng platin hay một sợinikel hoặc đồng (nguyên chất) Dựa trên nguyên tắc thay đổi điện trở của kim loại theonhiệt độ ( phương trình Callendar- Van Dusen )

Cần phải có mạch điện phức tạp để giảm sai số hay dùng sơ đồ nối ba hay bốn dây

để bù trừ điện trở dây nối khi phải nối dài cảm biến

Trang 24

- RTD bằng đồng sử dụng ở nhiệt độ dưới 100 C để tránh oxi hoá

- RTD bằng niken có độ phi tuyến cao , dùng ở nhiệt độ nhỏ hơn 300 0C

- RTD bằng bạch kim thông dụng nhất , có điện trở suất cao , chống oxi hoá có thểdùng trong khoảng -250 oC đến +850 0C

III.2.3 Điện trở nhiệt ( Thermistor )

Ðiện trở nhiệt được cấu tạo với một vật liệu là oxit kim loại, mangan, nikel,colbalt… vật liệu này thay đổi không tuyến tính với nhiệt độ , cho khoảng đo từ 50 đến

150 0C Do tính chất phi tuyến cuả nó , người ta không dùng Thermistor để đo nhiệt độ

mà dùng trong các mạch cảnh báo quá nhiệt hay mạch bù nhiệt Trong trường hợp cầnđặc tuyến tuyến tính theo nhiệt độ phải dùng thêm một số mạch tuyến tính hoá

Thermistor gồm có 2 loại :

- PTC :điện trở tăng theo nhiệt độ

- NTC :điện trở giảm theo nhiệt độ

Trong đó NTC thông dụng nhất

Trang 26

III.2.4.Cảm biến bằng vật liệu bán dẫn.

Nguyên lí loại này dựa trên nguyên tắc là mức năng lượng cần thiết để các điện tửvượt qua vùng nghèo sẽ thay đổi khi nhiệt độ chuyển tiếp thay đổi Vì thế mức áp rơi trênmốnối P-N cũng sẽ thay đổi khi nhiệt độ của nó thay đổi Cùng với những mạch điện tửtích hợpthích hợp người ta đã chế tạo ra nhiều loại cảm biến có ngõ ra khác nhau Nhưngchúng đều có một hạn chế chung là nhiệt độ hoạt động của chúng không cao vì giới hạnbởi sức chịu đựng của vật liệu chế tạo

III.2.5 IC Cảm biến nhiệt.

IC đo nhiệt độ là một mạch tích hợp nhận tín hiệu nhiệt độ chuyển thành tín hiệuđiện dưới dạng dòng điện hay điện áp Dựa vào đặc tính rất nhạy của các bán dẫn vớinhiệt độ, tạo ra điện áp hoặc dòng điện, tỉ lệ thuận với nhiệt độ tuyệt đối Đo tín hiệu điện

ta biết được giá trị của nhiệt độ cần đo Sự tác động của nhiệt độ tạo ra điện tích tự do vàcác lổ trống trong chất bán dẫn Bằng sự phá vỡ các phân tử, bứt các electron thành dạng

tự do di chuyển qua vùng cấu trúc mạng tinh thể tạo sự xuất hiện các lỗ trống Làm cho

tỉ lệ điện tử tự do và lổ trống tăng lên theo qui luật hàm mũ với nhiệt độ.Sau đây là một

số loại IC cảm biến nhiệt thông dụng trên thị trường:

Trang 27

Ở nhiệt độ 25 0C sai số không quá 1%

Dòng làm việc 400uA đến 5mA

Việc sử dụng các IC cảm biến nhiệt để đo nhiệt độ là một phương pháp thông dụng , đơn giản được chúng em sử dụng trong đồ án này

III.3.Hệ thống đo lường số :

Hệ thống đo lường số được áp dụng có các đặc điểm : các tín hiệu tương tự qua biếnđổi thành các tín hiệu số có giá trị trạng thái 0, 1 sẽ giới hạn được nhiều mức tín hiệu gâysai số Mặt khác, hệ thống này tương thích với dữ liệu của máy tính, qua giao tiếp vớimáy tính ứng dụng rộng rãi trong kỹ thuật

Đối tượng cần đo là đại lượng vật lý,dựa vào các đặc tính của đối tượng cần đo mà tachọn một loại cảm biến phù hợp để biến đổi thông số đại lượng vật lý cần đo thành đạilượng điện, đưa vào mạch chế biến tín hiệu(gồm:bộ cảm biến, hệ thống khuếch đại, xử lýtín hiệu)

Bộ chuyển đổi tín hiệu sang số ADC(Analog Digital Converter) làm nhiệm vụ chuyển

đổi tín hiệu tương tự sang tín hiệu số và kết nối với vi xử lý

Trang 28

Bộ vi điều khiển có nhiệm vụ thực hiện những phép tính và xuất ra những lệnh trên

cơ sở trình tự những lệnh chấp hành đã thực hiện trước đó

GIAO TIẾP MÁY TÍNH

Trang 29

IV.1.PHÂN TÍCH CƠ CỞ GIAO TIẾP MÁY TÍNH.

Máy tính là thiết bị trợ giúp đặc biệt cho con người ở các lĩnh vực văn phòng, đồ hoạ, lập trình.v.v Khoa học kỹ thuật ngày càng phát triển thì máy tính trở nênrất cần thiết và hữu ích Chính vậy, máy tính được đưa vào ứng dụng rất nhiều trong cuộcsống đặc biệt trong lĩnh vực kỹ thuật Những ứng dụng mạnh nhất của máy tính trong kĩthuật là thu thập dữ liệu từ thiết bị ngoại vi và điều khiển các quá trình hoạt động của hệthống một cách tự động theo chương trình mà con người định sẳn

Máy tính giao tiếp với các thiết bị ngoại vi theo các cách sau:

- Giao tiếp qua rãnh cắm của máy tính (Slot Card)

- Giao tiếp máy tính qua cổng song song (LPT)

- Giao tiếp máy tính qua cổng nối tiếp (COM)

- Giao tiếp máy tính qua cổng USB

IV.1.1 Giao tiếp qua rãnh cắm (Slot)

Trong máy tính, trên main board hoặc IO-card, thường chế tạo sẵn các rãnh cắm(slot) cho phép mở rộng bộ nhớ, cài đặt thêm phần cứng, mở rộng phạm vi ứng dụng chomáy tính Mỗi khe cắm có các đường dữ liệu, đường địa chỉ, đường nguồn và cácđường điều khiển như :CLK, IRQ, DMA…Do đó, nếu thiết kế giao tiếp qua Slot sẽ giảmđược bộ nguồn bên ngoài, làm giảm giá thành Tuy nhiên bên cạnh đó, Slot đòi hỏi ngườithiết kế phải nắm vững phần cứng của máy tính Giao tiếp qua Slot giới hạn khoảng cáchlàm việc

IV.1 2 Giao tiếp qua cổng song song (LPT)

a Vài nét cơ bản về cổng ghép nối máy in (cổng song song) :

Trang 30

Cổng máy in hay thường gọi là giao diện Centronics, việc nối với cổng máy in, máytính được thực hiện thông qua ổ cắm 25 chân ở phía sau máy tính Nhưng đây không chỉ làchỗ nối với máy in mà khi sử dụng vào mục đích đo lường và điều khiển thì việc ghép nốicũng có thể thực hiện qua ổ cắm này Qua cổng này dữ liệu được truyền đi song song, dovậy tốc độ truyền dữ liệu cũng đạt đến mức đáng kể Tất cả các đường dẫn của cổng máy

in đều tương thích với TTL Chính sự tương thích này giúp cho việc giao tiếp trở nên đơngiản và dễ dàng hơn Nghĩa là chúng đều cung cấp mức điện áp nằm giữa 0V đến 5V

Do đó ta cần lưu ý là các đường dẫn vào cổng này không được đặt mức điện áp quá lớn Vìvậy khi ta tiến hành ghép nối chúng với nhau ta phải chú ý tới những qui tắc an toàn sau:

- Chỉ được ghép nối khi máy tính đang ở trạng thái ngắt điện

- Các lối vào chỉ được phép tiếp nhận điện áp giữa 0V và 5 V

- Các lối ra không được phép ngắn mạch hoặc đấu nối với các ngõ ra khác và cáclối ra không được phép nối với các nguồn tín hiệu điện áp không biết rõ thông số

- Cổng máy in trong máy tính được ký hiệu bằng LPT1 hoặc LPT2, có tổng cộng

17 đường dẫn dữ liệu số: bao gồm có 12 đường dẫn ra và 5 đường dẫn vào

Các đường dẫn dữ liệu từ D0 – D7 là những đường dẫn một chiều, và là đường dẫn ra Cácđường tín hiệu vào, ra có chốt

b.Sơ đồ chân của cổng máy in được mô tả như sau:

Sơ đồ chân cổng máy in( Jack đực)

Các chân và đường dẫn được mô tả như sau:

Trang 31

c.Chức năng các chân của cổng song song:

Do cổng máy in có 5 đường dẫn lối vào, nhờ vậy mà việc bắt tay giữa máy tính vàcác thiết bị ngoại vi được thực hiện Trong 17 đường dẫn tín hiệu thì có 5 vào, vì vậy việc bắt tay giữa máy tính và máy in được thực hiện, chẳng hạn như khi máy in không còn

đủ chỗ trống trong bộ nhớ thì nó đưa đến máy tính một trạng thái (BUSY =1) tức là báo máy

in đang bận không nên gởi dữ liệu ra nữa

d Sự trao đổi với các đường dẫn tín hiệu:

Các đường dẫn tín hiệu của cổng máy in được sắp xếp thành 3 thanh ghi: Thanhghi dữ liệu, thanh ghi trạng thái và thanh ghi điều khiển Thông qua 3 thanh ghi này chophép trao đổi thông tin giữa môi trường ngoài và bộ nhớ máy tính

Muốn truy xuất dữ liệu qua cổng máy in thì ta phải biết được địa chỉ cơ bản của các thanhghi dữ liệu gọi là địa chỉ cơ bản của cổng máy in

Cổng máy in LPT1 có địa chỉ cơ bản là 378Hex và cổng LPT2 có địa chỉ cơ bản là278Hex

Địa chỉ thanh ghi dữ liệu với địa chỉ cơ bản của cổng máy in 378h Địa chỉ thanh ghi trạngthái là 379h

Địa chỉ thanh ghi điều khiển là 37Ah

- Thanh ghi dữ liệu: gồm có 8 bit dữ liệu, có địa chỉ là 378h Thanh ghi dữ liệu (Data

register, địa chỉ = địa chỉ cơ bản ):

Trang 32

- Thanh ghi trạng thái: có địa chỉ là 379h

Thanh ghi trạng thái(status register, địa chỉ = địa chỉ cơ bản +1)

Thanh ghi điều khiển : có địa chỉ là 37AH

Thanh ghi điều khiển(control register, địa chỉ = địa chỉ cơ bản + 2

Nhìn vào bảng công dụng các chân của cổng LPT1 và 3 thanh ghi của máy tính, tathấy có thể sử dụng thanh ghi data là thanh ghi phát, có nhiệm vụ truyền dữ liệu ra ngoài,

và thanh ghi điều khiển sẽ gởi tín hiệu điều khiển cho Kit, còn thanh ghi trạng thái sẽ nhậntín hiệu báo trạng thái hiện tại của thiết bị về máy tính

Trang 33

IV.1 3 Giao tiếp qua cổng nối tiếp (COM).

Giao tiếp qua cổng COM được sử dụng khá phổ biến Dữ liệu truyền ở cổng nàythuộc dạng dữ liệu nối tiếp Tín hiệu truyền ở cổng này có thể truyền đi xa nhờ có cấu tạođường dây cáp ít sợi hơn cổng song song, mức áp tín hiệu cao

Cổng COM có loại 9 chân và loại 25 chân như cổng song song, có tổng cộng 8 đường dẫn tínhiệu không kể đường nối đất

Cổng COM giao tiếp theo chuẩn RS-232 và thường được sử dụng để giao tiếp giữa máytính và Modem hoặc giao tiếp với Mouse Dữ liệu được truyền dưới dạng nối tiếp với tốccực đại là 20Kbps, khoảng cách tối đa không quá 15m

Chiều dài của dữ liệu có thể dài bất kì nhưng thông thường trong 1byte chỉ dài 7 đến 8 bitkết hợp các bit xuất phát(Start bit) và bit dừng(Stop bit), Parity bit tạo thành một Frame.Các thiết bị phát và nhận phải có cùng độ dài dữ liệu Ngoài các đường dữ liệu, cổng giaotiếp này còn có các đường điều khiển thu phát và kiểm tra lỗi

Cổng nối tiếp được sử dụng để truyền dữ liệu hai chiều giữa máy tính và ngoại vi, có các ưuđiểm sau:

- Khoảng cách truyền xa hơn truyền song song

- Số dây kết nối ít

- Có thể truyền không dây dùng hồng ngoại

- Có thể ghép nối với vi điều khiển hay PLC (Programmable Logic Device)

- Cho phép nối mạng

- Có thể tháo lắp thiết bị trong lúc máy tính đang làm việc

- Có thể cung cấp nguồn cho các mạch điện đơn giản

Các thiết bị ghép nối chia thành 2 loại: DTE (Data Terminal Equipment) và DCE(Data Communication Equipment) DCE là các thiết bị trung gian như MODEM còn DTE

là các thiết bị tiếp nhận hay truyền dữ liệu như máy tính, PLC, vi điều khiển,… Việc traođổi tín hiệu thông thường qua 2 chân RxD (nhận) và TxD (truyền) Các tín hiệu còn lại cóchức năng hỗ trợ để thiết lập và điều khiển quá trình truyền, được gọi là các tín hiệubắt tay (handshake)

Ưu điểm của quá trình truyền dùng tín hiệu bắt tay là có thể kiểm soát đường truyền Tín hiệu truyền theo chuẩn RS-232 của EIA (Electronics Industry Associations).Chuẩn RS-232 quy định mức logic 1 ứng với điện áp từ -3V đến -25V (mark), mức logic 0ứng với điện áp từ 3V đến 25V (space) và có khả năng cung cấp dòng từ 10 mA đến 20 mA.Ngoài ra, tất cả các ngõ ra đều có đặc tính chống chập mạch

Chuẩn RS-232 cho phép truyền tín hiệu với tốc độ đến 20.000 bps nhưng nếu cáptruyền đủ ngắn có thể lên đến 115.200 bps

Các phương thức nối giữa DTE và DCE:

- Đơn công (simplex connection): dữ liệu chỉ được truyền theo 1 hướng

- Bán song công ( half-duplex): dữ liệu truyền theo 2 hướng, nhưng mỗi thờiđiểm chỉ được truyền theo 1 hướng

- Song công (full-duplex): số liệu được truyền đồng thời theo 2 hướng Định dạngcủa khung truyền dữ liệu theo chuẩn RS-232 như sau:

Trang 34

Khi không truyền dữ liệu, đường truyền sẽ ở trạng thái mark (điện áp -10V) Khi bắtđầu truyền, DTE sẽ đưa ra xung Start (space: 10V) và sau đó lần lượt truyền từ D0 đến D7

và Parity, cuối cùng là xung Stop (mark: -10V) để khôi phục trạng thái đường truyền Dạngtín hiệu truyền mô tả như sau (truyền ký tự A):

Các đặc tính kỹ thuật của chuẩn RS-232 như sau:

Chiều dài cable cực đại 15mTốc độ dữ liệu cực đại 20 KbpsĐiện áp ngõ ra cực đại ± 25VĐiện áp ngõ ra có tải ± 5V đến ± 15V

Trang 35

HIỆU TRUYỀN

1 - - - Protected ground: nối đất bảo vệ

2 3 TxD DTE→DCE Transmitted data: dữ liệu truyền

3 2 RxD DCE→DTE Received data: dữ liệu nhận

4 7 RTS DTE→DCE Request to send: DTE yêu cầu truyền dữ liệu

5 8 CTS DCE→DTE Clear to send: DCE sẵn sàng nhận dữ liệu

6 6 DSR DCE→DTE Data set ready: DCE sẵn sàng làm việc

8 1 DCD DCE→DTE Data carier detect: DCE phát hiện sóng mang

20 4 DTR DTE→DCE Data terminal ready: DTE sẵn sàng làm việc

22 9 RI DCE→DTE Ring indicator: báo chuông

23 - DSRD DCE→DTE Data signal rate detector: dò tốc độ truyền

24 - TSET DTE→DCE Transmit Signal Element Timing: tín hiệu định

thời truyền đi từ DTE

15 - TSET DCE→DTE Transmitter Signal Element Timing: tín hiệu

định thời truyền từ DCE để truyền dữ liệu

17 - RESET DCE→DTE Receiver Signal Element Timing: tín hiệu

định thờitruyền từ DCE để truyền dữ liệu

21 - RL DCE→DTE Remote Loopback: Tạo ra bởi DCE khi tín hiệu

nhận từ DCE lỗi

14 - STxD DTE→DCE Secondary Transmitted Data

IV.1.4 Truyền thông nối tiếp dùng ActiveX.

a mô tả:

Việc truyền thông nối tiếp trên Windows được thực hiện thông qua một ActiveX có

Trang 36

sẵn là Microsoft Comm Control ActiveX này dược lưu trữ trong file MSCOMM32.OCX.Quá trình này có hai khả năng thực hiện điều khiển trao đổi thông tin:

- Điều khiển sự kiện:

Truyền thông điều khiển sự kiện là phương pháp tốt nhất trong quá trình điều khiểnviệc trao đổi thông tin Quá trình điều khiển thực hiện thông qua sự kiện OnComm

- Hỏi vòng:

Quá trinh điều khiển bằng phương pháp hỏi vòng thực hiện thông qua kiểm tracác giá trị của thuộc tính CommEvent sau một chu kỳ nào đó để xác định xem có sự kiệnnào xảy ra hay không Thông thường phương pháp này sử dụng cho các chương trìnhnhỏ

ActiveX MsComm được bổ sung vào một Visual Basic Project thông quamenu Project > Components:

Biểu tượng của MsComm và các thuộc tính cơ bản mô tả như sau:

Trang 38

b Các thuộc tính:

- Settings:

Xác định các tham số cho cổng nối tiếp Cú pháp:

MSComm1.Settings = ParamString MSComm1: tên đối tượng

ParamString: là một chuỗi có dạng như sau: "BBBB,P,D,S"

BBBB: tốc độ truyền dữ liệu (bps) trong đó các giá trị hợp lệ là:

600 14400 188000

1200 19200 256000 P: kiểm tra chẵn lẻ, với các giá trị:

Giá trị Mô tả

O Odd (kiểm tra lẻ)

E Even (kiểm tra chẵn)

M Mark (luôn bằng 1)

S Space (luôn bằng 0)

N Không kiểm tra D: số bit dữ liệu (4, 5, 6, 7 hay 8), mặc định là 8 bit S: số bit stop (1, 1.5, 2) VD: MSComm1.Settings = "9600,O,8,1" sẽ xác định tốc độ truyền 9600bps, kiểm traparity chẵn với 1 bit stop và 8 bit dữ liệu

+ CommPort: Xác định số thứ tự của cổng truyền thông, cú pháp:

MSComm1.PortOpen = True | False

Giá trị xác định là True sẽ thực hiện mở cổng và False để đóng cổng đồng thời xoá nộidung của các bộ đệm truyền, nhận

VD: Mở cổng COM1 với tốc độ truyền 9600 bps

Trang 39

- Các thuộc tính xuất dữ liệu:

Bao gồm các thuộc tính Output, OutBufferCount và OutBufferSize, chức năng củacác thuộc tính này giống như các thuộc tính nhập

+ CDTimeout: Đặt và xác định khoảng thời gian lớn nhất (tính bằng ms) từ lúc pháthiện sóng mang cho đến lúc có dữ liệu Nếu quá khoảng thời gian này mà vẫn chưa có

dữ liệu thì sẽ gán thuộc tính CommEvent là CDTO (Carrier Detect Timeout Error) và tạo

MSComm1.CTSTimeout = NumTime

+ CTSHolding: Xác định đã có tín hiệu CTS hay chưa, tín hiệu này dùng cho quátrình bắt tay bằng phần cứng (cho biết DCE sẵn sàng nhận dữ liệu), trả về giá trị True hayFalse

+ DSRHolding:Xác định trạng thái DSR (báo hiệu sự tồn tại của DCE), trả về giá

trị True hay False

Trang 40

+ CDHolding: Xác định trạng thái CD, trả về giá trị True hay False

+ DTREnable: Đặt hay xoá tín hiệu DTR để báo sự tồn tại của DTE

Cú pháp: MSComm1.DTREnable = True | False

+ RTSEnable: Đặt hay xoá tín hiệu RTS để yêu cầu truyền dữ liệu đến DTE

Cú pháp: MSComm1.RTSEnable = True | False

+ NullDiscard:

Cho phép nhận các ký tự NULL (rỗng) hay không (= True: cấm)

Cú pháp: MSComm1.NullDiscard = True | False

+ SThreshold: Số byte trong bộ đệm truyền làm phát sinh sự kiện OnComm Nếu giátrị này bằng 0 thì sẽ không tạo sự kiện OnComm Cú pháp:

MSComm1.SThreshold=NumChar

+ HandShaking: Chọn giao thức bắt tay khi thực hiện truyền dữ liệu Cú pháp:MSComm1.HandShaking = Protocol

Các giao thức truyền bao gồm:

Protocol Giá trị Mô tả

ComNone 0 Không băt tay (mặc định)ComXon/Xoff 1 Bắt tay phần mềm (Xon/Xoff)ComRTS 2 Bắt tay phần cứng (RTS/CTS)ComRTSXon/Xoff 3 Bắt tay phần cứng và phànmềm

- commEvent:Trả lại các lỗi truyền thonog hay sự kiện xảy ra tại cổng nối tiếp.Các sựkiện:

Sự kiên Giá trị Mô tả

ComEvSend 1 Đã truyền ký tự

ComEvReceive 2 Khi có ký tự trong bộ đệm nhận

ComEvCTS 3 Có thay đổi trên CTS (Clear To Send) Có

ComEvDSR 4 Có thay đổi trên DSR (Data Set Ready) Có

ComEvCD 5 Có thay đổi trên CD (Carrier Detect)

ComEvRing 6 Phát hiện chuông

ComEvEOF 7 Nhận ký tự kết thúc file

IV.1.5 Chọn phương án thiết kế.

Chọn phương án giao tiếp qua cổng nối tiếp :

Truyền nối tiếp thì có khả năng dùng cho những khoảng cách lớn, khả năng gâynhiễu là nhỏ đáng kể so với dùng cổng song song Khi truyền port nối tiếp mức logic 1 cóđiện áp từ -3 đến -15V và mức logic 0 có điện thế từ +3 đến +15V trong khi truyền port

Ngày đăng: 07/09/2017, 08:51

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w