Nội dung luận văn
Phần 0 – GIỚI THIỆU CHUNG
Phần I – CƠ SỞ LÝ THUYẾT
Chương 1: Giới thiệu vi xử lý ATmega16
1.1 Giới thiệu chung 05
1.2 Cấu trúc AVR 06
1.2.1 Cấu trúc tổng quát 06
1.2.2 ALU. 07
1.2.3 Thanh ghi trạng thái 07
1.2.4 Các thanh ghi chức năng 08
1.2.5 Con trỏ ngăn xếp (SP) 08
1.2.6 Quản lý ngắt 09
1.3 Cấu trúc bộ nhớ 10
1.4 Các cổng ngoài ra (I/O) 12
1.5 Bộ định thời 14
1.5.1 Các thanh ghi 15
1.5.2 Đơn vị đếm 15
1.5.3 Đơn vị so sánh ngõ ra 16
1.5.4 Mô tả các thanh ghi 17
1.6 USART 19
1.6.1 Tạo xung clock 20
1.6.2 Định dạng khung truyền 21
1.6.3 Khởi tạo USART 22
1.6.4 Truyền thông dữ liệu –bộ truyền USART 23
1.6.5 Nhận dữ liệu –bộ phận USART 24
1.7 Bộ biến đổi A/D 26
Chương 2: GIỚI THIỆU CẢM BIẾN DS18B20
2.1 Sơ đồ chân cảm biến nhiệt độ DS18B20 34
2.2 Các đặc tính cơ bản của DS18B20 35
2.3 Lệnh ROM và các lệnh chức năng 37
2.3.1 Lệnh ROM 37
2.3.2 Lệnh chức năng bộ nhớ 38
2.4 Các cách kết nối DS18B20 với vi điều khiển 39
Chương 3: KHÁI QUÁT MODULE RF
3.1 Các đặc tính của RF module 42
3.2 Chức năng các chân module 43
Chương 4: GIỚI THIỆU GSM MODEM VÀ TẬP LỆNH AT
4.1 Giới thiệu về kết nối GSM modem và RS232 46
4.1.1 Sơ đồ nhân của GSM modem 46
4.1.2 Kết nối anten 47
4.1.3 Nguồn cung cấp cho kết nối 47
4.1.4 Các chân kết nối của GSM modem 48
4.2 Giới thiệu vế tập lệnh ATcommand 50
Phần II – THIẾT KẾ VÀ THI CÔNG
Chương 5: CƠ SỞ THIẾT KẾ
5.1 Sơ đồ nguyên lý và sơ đồ khối 55
5.1.1 Sơ đồ khối 55
5.1.2 Sơ đồ nguyên lý 60
5.2 Giới thiệu IC max232 62
Chương 6: LƯU ĐỒ GIẢI THUẬT VÀ CHƯƠNG TRÌNH
6.1 Cách sử dụng codevisionAVR 65
6.2 Lưu đồ giải thuật khối trung tâm 74
6.3 Lưu đồ giải thuật khối ngoại vi 78
6.4 Chương trình chính 80
6.4.1 Chương trình khối trung tâm 80
6.4.2 Chương trình khối ngoại vi 81
Chương 7: KẾT QUẢ VÀ HƯỚNG PHÁT TRIỂN
7.1 Kết quả thi công 86
7.1.1 Mạch in trung tâm 86
7.1.2 Mạch in ngoại vi 86
7.1.3 Mạch thực tế 87
7.2 Kết luận và hướng phát triển 87
TÀI LIỆU THAM KHẢO
103 trang |
Chia sẻ: lethao | Lượt xem: 2087 | Lượt tải: 5
Bạn đang xem trước 20 trang tài liệu Đề tài Quản lý thiết bị sử dụng công nghệ GSM, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
thời/đếm 8 bit, có các đặc điểm sau:
Bộ đếm một kênh
Xóa bộ định thời khi trong mode so sánh (tự động nạp)
PWM
Tạo tần số
Bộ đếm sự kiện ngoài
Bộ chia tần 10 bit
Nguồn ngắt tràn bộ đếm và so sánh
Sơ đồ cấu trúc của bộ định thời:
Hình 1.8: Sơ đồ cấu trúc bộ định thời
Các thanh ghi
TCNT0 và OCR0 là các thanh ghi 8 bit. Các tín hiệu yêu cầu ngắt đều nằm trong thanh ghi TIFR. Các ngắt có thể được che bởi thanh ghi TIMSK.
Bộ định thời có thể sử dụng xung clock nội thông qua bộ chia hoặc xung clock ngoài trên chân T0. Khối chọn xung clock điều khiển việc bộ định thời/bộ đếm sẽ dùng nguồn xung nào để tăng giá trị của nó. Ngõ ra của khối chọn xung clock được xem là xung clock của bộ định thời (clkT0).
Thanh ghi OCR0 luôn được so sánh với giá trị của bộ định thời/bộ đếm. Kết quả so sánh có thể được sử dụng để tạo ra PWM hoặc biến đổi tần số ngõ ra tại chân OC0.
Đơn vị đếm
Phần chính của bộ định thời 8 bit là một đơn vị đếm song hướng có thể lập trình được. Cấu trúc của nó như hình dưới đây:
Hình 1.9: Đơn vị đếm
count: tăng hay giảm TCNT0 1
direction: lựa chọn giữa đếm lên và đếm xuống
clear: xóa thanh ghi TCNT0
clkT0: xung clock của bộ định thời
TOP: báo hiệu bộ định thời đã tăng đến giá trị lớn nhất
BOTTOM: báo hiệu bộ định thời đã giảm đến giá trị nhỏ nhất (0)
Đơn vị so sánh ngõ ra
Hình 1.10: Sơ đồ đơn vị so sánh ngõ ra
Bộ so sánh 8 bit liên tục so sánh giá trị TCNT0 với giá trị trong thanh ghi so sánh ngõ ra (OCR0). Khi giá trị TCNT0 bằng với OCR0, bộ so sánh sẽ tạo một báo hiệu. Báo hiệu này sẽ đặt giá trị cờ so sánh ngõ ra (OCF0) lên 1 vào chu kỳ xung clock tiếp theo. Nếu được kích hoạt (OCIE0=1), cờ OCF0 sẽ tạo ra một ngắt so sánh ngõ ra và sẽ tự động được xóa khi ngắt được thực thi. Cờ OCF0 cũng có thể được xóa bằng phần mềm.
Mô tả các thanh ghi
Thanh ghi điều khiển bộ định thời/bộ đếm TCCR0
Hình 1.11: Thanh ghi điều khiển bộ định thời
Bit 7-FOC0: So sánh ngõ ra bắt buộc:Bit này chỉ tích cực khi bit WGM00 chỉ định chế độ làm việc không có PWM. Khi đặt bit này lên 1, một báo hiệu so sánh bắt buộc xuất hiện tại đơn vị tạo dạng sóng.
Bit 6, 3-WGM01:0: Chế độ tạo dạng sóng:Các bit này điều khiển đếm thứ tự của bộ đếm, nguồn cho giá trị lớn nhất của bộ đếm (TOP) và kiểu tạo dạng sóng sẽ được sử dụng.
Bit 5:4-COM01:0: Chế độ báo hiệu so sánh ngõ ra:Các bit này điều khiển hoạt động của chân OC0. Nếu một hoặc cả hai bit COM01:0 được đặt lên 1, ngõ ra OC0 sẽ hoạt động.
Bit 2:0: CS02:0: Chọn xung đồng hồ:Ba bit này dùng để lựa chọn nguồn xung cho bộ định thời/bộ đếm.
Báng 1.1:Bảng 3 bít chọn xung đồng hồ
Thanh ghi bộ định thời/bộ đếm
Hình 1.12: Thanh ghi bộ định thời
Thanh ghi bộ định thời/bộ đếm cho phép truy cập trực tiếp (cả đọc và ghi) vào bộ đếm 8 bit.
Thanh ghi so sánh ngõ ra-OCR0
Hình 1.13: Thanh ghi so sánh ngõ ra
Thanh ghi này chứa một giá trị 8 bit và liên tục được so sánh với giá trị của bộ đếm.
Thanh ghi mặt nạ ngắt
Hình 1.14: Thanh ghi mặt nạ ngắt TIMSK
Bit 1-OCIE0: Cho phép ngắt báo hiệu so sánh
Bit 0-TOIE0: Cho phép ngắt tràn bộ đếm
Thanh ghi cờ ngắt bộ định thời
Hình 1.15:Thanh ghi cờ ngắt bộ định thời
Bit 1-OCF0: Cờ so sánh ngõ ra 0
Bit 0-TOV0: Cờ tràn bộ đếm
Bit TOV0 được đặt lên 1 khi bộ đếm bị tràn và được xóa bởi phần cứng khi vector ngắt tương ứng được thực hiện. Bit này cũng có thể được xóa bằng phần mềm.
USART
Bộ truyền nhận nối tiếp đồng bộ và bất đồng bộ là một thiết truyền thông nối tiếp có các chức năng chính như sau:
Hoạt động song công (các thanh ghi truyền và nhận nối tiếp độc lập với nhau).
Hoạt động đồng bộ hoặc bất đồng bộ
Bộ tạo tốc độ baud có độ chính xác cao
Hỗ trợ khung truyền nối tiếp với 5, 6, 7, 8, hoặc 9 bit dữ liệu và 1 hoặc 2 bit stop
Kiểm tra chẵn lẻ
Phát hiện tràn dữ liệu
Phát hiện lỗi khung
Lọc nhiễu, bao gồm phát hiện bit start lỗi và bộ lọc thông thấp số
Ngắt khi kết thúc truyền, thanh ghi truyền hết dữ liệu và kết thúc nhận
Chế độ truyền thông đa vi xử lý
Chế độ truyền đồng bộ tốc độ cao
Sơ đồ khối của bộ USART như sau:
Hình 1.16: Sơ đồ khối bộ USART
USART bao gồm 3 phần chính: bộ tạo xung clock, bộ truyền và bộ nhận. Các thanh ghi điều khiển được sử dụng chung giữa các phần này.
1.6.1 Tạo xung clock
Bộ tạo xung clock tạo ra xung đồng hồ căn bản cho bộ truyền và bộ nhận. USART hỗ trợ 4 chế độ hoạt động xung clock: bất đồng bộ, bất đồng bộ tốc độ cao, truyền đồng bộ master và truyền đồng bộ slave. Sơ đồ khối của bộ tạo xung clock như sau:
Hình 1.17: Đơn vị tạo xung clock
.
txclk: xung đồng hồ bộ truyền
rxclk: xung đồng hồ bộ nhận
xcki: tín hiệu vào từ chân XCK, sử dụng cho hoạt động truyền đồng bộ master
xcko: tín hiệu xung clock ngõ ra tới chân XCK, sử dụng cho hoạt động truyền đồng bộ slave
fosc: tần số từ chân XTAL
1.6.2 Định dạng khung truyền
USART chấp nhận tất cả 30 tổ hợp của các định dạng khung truyền sau đây:
1 bit start
5, 6, 7, 8, hoặc 9 bit dữ liệu
Có hoặc không có bit chẵn, lẻ
1 hoặc 2 bit stop
Một khung truyền bắt đầu với một bit start, theo sau đó là bit có trọng số thấp nhất (LSB) của dữ liệu (có thể lên tới 9 bit), kết thúc bằng bit có trọng số lớn nhất (MSB) và bit stop.
Hình 1.18: Định dạng khung truyền
St: bit start (mức thấp)
(n): bit dữ liệu (0 đến 8)
P: bit chẵn lẻ
Sp: bit stop (mức cao)
IDLE: không có dữ liệu truyền (mức cao trong suốt thời gian idle)
1.6.3 Khởi tạo USART
Quá trình khởi tạo USART bao gồm việc thiết lập tốc độ baud, thiết lập định dạng khung và kích hoạt bộ truyền và bộ nhận.
Ví dụ dưới đây thiết lập hoạt động truyền bất động bộ sử dụng polling (không dùng ngắt) và định dạng khung truyền là cố định. Tốc độ baud là một tham số của hàm.
void USART_Init( unsigned int baud )
{
/* Set baud rate */
UBRRH = (unsigned char)(baud>>8);
UBRRL = (unsigned char)baud;
/* Enable receiver and transmitter */
UCSRB = (1<<RXEN)|(1<<TXEN);
/* Set frame format: 8data, 2stop bit */
UCSRC = (1<<URSEL)|(1<<USBS)|(3<<UCSZ0)}
1.6.4 Truyền thông dữ liệu-bộ truyền USART
Bộ truyền USART được kích hoạt bằng cách thiết lập bit TXEN trong thanh ghi UCSRB. Khi bộ truyền được kích hoạt, chân TxD hoạt động như ngõ ra của bộ truyền nối tiếp. Tốc độ baud, chế độ hoạt động và định dạng khung truyền phải được thiết lập trước khi thực hiện truyền dữ liệu.
Truyền khung 5 đến 8 bit dữ liệu
Việc truyền dữ liệu được thiết lập bằng cách nạp dữ liệu truyền vào bộ đệm truyền. Dữ liệu trong bộ đệm sẽ được đưa vào thanh ghi dịch khi thanh ghi dịch đã sẵn sàng gửi một khung mới.
Ví dụ dưới đây là một hàm truyền USART dựa trên việc kiểm tra cờ UDRE.
void USART_Transmit( unsigned char data )
{
/* Wait for empty transmit buffer */
while ( !( UCSRA & (1<<UDRE)) )
;
/* Put data into buffer, sends the data */
UDR = data;
}
Truyền khung 9 bit dữ liệu
Nếu sử dụng 9 bit dữ liệu, bit thứ 9 phải được ghi vào bit TXB8 trong thanh ghi UCSRB trước khi byte còn lại được ghi vào UDR.
Ví dụ:
void USART_Transmit( unsigned int data )
{
/* Wait for empty transmit buffer */
while ( !( UCSRA & (1<<UDRE))) )
;
/* Copy 9th bit to TXB8 */
UCSRB &= ~(1<<TXB8);
if ( data & 0x0100 )
UCSRB |= (1<<TXB8);
/* Put data into buffer, sends the data */
UDR = data;
}
1.6.5 Nhận dữ liệu-bộ nhận USART
Bộ nhận USART được kích hoạt bằng cách đặt bit RXEN trong thanh ghi UCRSB lên 1. Khi bộ nhận được kích hoạt, chân RxD hoạt động như ngõ vào của bộ nhận nối tiếp. Tốc độ baud, chế độ hoạt động và định dạng khung truyền phải được thiết lập trước khi thực hiện truyền dữ liệu.
Nhận khung với 5 đến 8 bit dữ liệu
Bộ nhận bắt đầu nhận dữ liệu khi nó phát hiện một bit start hợp lệ. Mỗi bit theo sau bit start sẽ được lấy mẫu tại tốc độ baud hoặc tốc độ đồng hồ XCK, và được dịch vào trong thanh ghi dịch của bộ nhận cho đến khi phát hiện một bit stop đầu tiên. Nội dung của thanh ghi dịch sau đó được đưa vào bộ đệm. Bộ đệm của bộ nhận có thể được đọc bằng cách đọc UDR.
Ví dụ sau đây là một hàm nhận USART dựa trên việc kiểm tra cờ kết thúc truyền (RXC).
unsigned char USART_Receive( void )
{
/* Wait for data to be received */
while ( !(UCSRA & (1<<RXC)) )
;
/* Get and return received data from buffer */
return UDR;
}
Nhận khung với 9 bit dữ liệu
Nếu nhận dữ liệu 9 bit, bit thứ 9 phải được đọc từ bit RXB8 trong thanh ghi UCSRB trước khi đọc các bit thấp trong UDR.
Ví dụ sau đây là một hàm nhận dữ liệu 9 bit.
unsigned int USART_Receive( void )
{
unsigned char status, resh, resl;
/* Wait for data to be received */
while ( !(UCSRA & (1<<RXC)) )
;
/* Get status and 9th bit, then data */
/* from buffer */
status = UCSRA;
resh = UCSRB;
resl = UDR;
/* If error, return -1 */
if ( status & (1<<FE)|(1<<DOR)|(1<<PE) )
return -1;
/* Filter the 9th bit, then return */
resh = (resh >> 1) & 0x01;
return ((resh << 8) | resl);
}
Bộ biến đổi A/D
Vi điều khiểnATmega16 có một bộ biến đổi ADC tích hợp trong chip với các đặc điểm:
Độ phân giải 10 bit
Sai số tuyến tính: 0.5LSB
Độ chính xác +/-2LSB
Thời gian chuyển đổi:65-260μs
8 Kênh đầu vào có thể được lựa chọn
Có hai chế độ chuyển đổi free running và single conversion
Có nguồn báo ngắt khi hoàn thành chuyển đổi
Loại bỏ nhiễu trong chế độ ngủ
Hình 1.19: Sơ đồ bộ biến đổi A/D
Tám đầu vào của ADC là tám chân của PORTA và chúng được chọn thông qua một MUX.
Để điều khiển hoạt động vào ra dữ liệu của ADC và CPU chúng ta có 3 thanh ghi: ADMUX là thanh ghi điều khiển lựa chọn kênh đầu vào cho ADC, ADCSRA là thanh ghi điều khiển và thanh ghi trạng thái của ADC, ADCH và ADCL là 2 thanh ghi dữ liệu.
ADMUX: Multiplexer select register
Đây là thanh ghi điều khiển 8 bit.
Hình 1.20: Thanh ghi ADMUX
Với 4 bit được định nghĩa là MUX3, MUX2, MUX1,và MUX0, ứng với các tổ hợp logic ta có thể chọn kênh đầu vào. Cụ thể:
Các bit REFS1 và REFS0 dùng để chọn giá trị điện áp tham khảo cho ADC, như sau:
Bảng 1.2: chọn điện áp tham khảo ADC
Chú ý: Nếu như ta thay đổi kênh trong thời điểm mà ADC đang chuyển đổi thì khi quá trình chuyển đổi đã hoàn thành thì kênh vào mới được thay đổi.
ADCSR-ADC control and status register
Đây là thanh ghi điều khiển và lưu trạng thái của ADC.
Hình 1.21: Thanh ghi điều khiển và trạng thái ADC
Bit 7-ADEN:ADC enable
Đây là bit điều khiển hoạt động của ADC.Khi bit này được set 1 thì ADC có thể hoạt động và ngược lại.Nếu như ta ngừng hoạt động của ADC trong khi nó đang chuyển đổi thì nó sẽ kết thúc quá trình chuyển đổi.Mặc dù chưa chuyển đổi xong.
Bit 6-ADSC: ADC start conversion
Trong chế độ chuyển đổi đơn thì bit này phải được set lên 1 để bắt đầu chuyển đổi.Trong chế độ chuyển đổi tự do thì bit này cần được set lên 1 để bắt đầu lần chuyển đổi đầu tiên.Bit này được giữ sốt trong quá trình chuyển đổi và được xóa khi mà chuyển đổi xong.
Bit 5-ADATE :ADC Auto Trigger enable
Khi bit này được set thì ADC sẽ bắt đầu chuyển đổi mỗi khi có một nguồn kích hoạt xuất hiện. Việc lựa chọn nguồn kích hoạt được thực hiện bằng cách set các bit trong thanh ghi SFIOR.
Bit 4-ADIF: ADC interrupt Flag
Bit này được set lên 1 bởi phần cứng khi quá trình chuyển đổi đã hoàn thành và thanh ghi dữ liệu đã được cập nhật. Bit này được xóa bằng phần cứng nếu như ngắt này được phép và được phục vụ. Hoặc nó có thể được xóa bằng cách ghi giá trị logic “0”vào cờ này. Cụ thể khi ngắt bị cấm ta có thể sử dụng các lệnh sbi và cbi để tác dụng lên bit này.
Bit 3-ADIE:ACD interrupt Enable
Nếu bit này set 1 và ngắt toàn cục được cho phép thì ngắt này được phép phục vụ (khi chuyển đổi xong dữ liệu) và nếu bị xóa thì ngược lại.
Bit 2.1.0-ADPS2…ADPS0: Bit lựa chọn xung nhịp(Tốc độ)
Nguồn xung được lấy từ nguồn xung của Vi điều khiển(XTAL) và được chia tần thông qua bộ chia tần.
Các bit ADPS có nhiệm vụ chọn số chia cho bộ chia tần theo bảng sau:
Thanh ghi dữ liệu ACDH và ADCL
Thanh ghi này chứa dữ liệu chuyển đổi từ tương tự sang số, được sắp xếp như hình dưới đây.
Hình 1.22: Thanh ghi dữ liệu ADC
Nguyên tắc hoạt động và lập trình điều khiển
ADC có nhiệm vụ chuyển đổi tín hiệu điện áp tương tự thành tín hiệu số có độ phân giải 10 bit.Với giá trị nhỏ nhất của điện áp đặt ở chân AGND và giá trị cực đại của điện áp tương tự được mắc vào chân AREF. Tám kênh tương tự đầu vào được chọn lựa thông qua ADMUX và ADMUX này được điều khiển bởi thanh ghi ADMUX.
ADC này có thể hoạt động được ở hai chế độ. Đó là chuyển đổi đơn: chỉ chuyển đổi một lần khi có lệnh chuyển đổi và chế độ tự chuyển đổi (Free running mode) đây là chế độ mà ADC tự động chuyển đổi khi được hoạt động và công việc chuyển đổi có tính tuần hoàn (chỉ cần khởi động một lần).
ADC được phép hoạt động nhờ thiết lập bit ADEN. Quá trình chuyển đổi được bắt đầu bằng việc ghi vào bit ADSC mức logic 1 và trong suốt quá trình chuyển đổi bit này luôn được giữ ở mức cao. Khi quá trình chuyển đổi hoàn thành thì bit này được xóa bằng phần cứng và cờ AIDF được bật lên.
Dữ liệu sau khi chuyển đổi được đưa ra thanh ghi dữ liệu ADCL và ADCH, nhưng chú ý khi đọc dữ liệu từ hai thanh ghi này thì đọc ADCL trước rồi mới đọc ADCH. Nếu đọc ADCH trước thì dữ liệu cập nhật có thể ghi đè lên ADCL (Vi điều khiển nghĩ rằng đã đọc xong dữ liệu).
Để điều khiển vào ra dữ liệu với ADC, các bước thực hiện như sau:Bước 1: Định nghĩa các cổng vào cho tín hiệu tương tựXóa bit tương ứng với chân đó trong thanh ghi DDRA. Sau đó loại bỏ điện trở treo bằng cách xóa bit tương ứng ở thanh ghi PORTA.Bước 2: Chọn kênh tương tự vào (chọn chân vào cho ADC) thông qua thanh ghi ADMUX (có thể thay đổi trong quá trình hoạt động).Bước 3: Thiết lập các thông số cho ADCTốc độ chuyển đổi thông qua xung nhip chuyển đổi.Chế độ chuyển đổi : đơn hoặc tự động.Sử dụng ngắt hoặc không.Bước 4: Bắt đầu chuyển đổi và đọc dữ liệu.
Ví dụ: (biến đổi ADC, ngõ vào analog PA2, hiển thị dữ liệu trên led ở PORTB)
#include
#include
//ADC interrupt function
ISR(ADC_vect)
{PORTB=ADCH;
}
int main(void)
{
outp(0xFF, DDRB); //PORTB is output
outp(0xFF, PORTB); //all PIN’s high (LED’s off)
outp(0x22, ADMUX); //PINA2 as analog input (MUX0..2)
//left adjusted (ADLAR=1)
//AREF as reference voltage (connected to VCC 5V) (REFS0..1)
outp(0xA5, ADCSR); //ADC enable, ADC auto trigger, ADC prescaler= 32
outp((inp(SFIOR)&0x1F),SFIOR); //Trigger source = Free Running Mode
sbi(ADCSR,6);
for(;;)
{
}
return 1;
Chương 2
GIỚI THIỆU CẢM BIẾN DS18B20
Nội dung chính
Sơ đồ chân cảm biến nhiệt độ DS18B20
Các đặc tính kỹ thuật cơ bản của DS18B20
Lệnh ROM và các lệnh chức năng
Lệnh ROM
Lệnh chức năng bộ nhớ
Các cách kết nối DS18B20 với vi điều khiển
Sơ đồ chân cảm biến nhiệt độ DS18B20
Cảm biến nhiệt độ DS18B20 là một sản phẩm của công ty Dallas (Mỹ), đây cũng là công ty đóng góp nhiều vào việc cho ra đời bus một dây và các cảm biến một dây. Hình dạng bề ngoài của cảm biến một dây DS18B20 được miêu tả trong hình vẽ, trong đó dạng vỏ TO-92 với 3 chân là dạng thường gặp và được sử dụng trong nhiều ứng dụng, cảm biến dạng vỏ SOIC với 8 chân được dùng để đo nhiệt độ bề mặt, kể cả da người.
Hình 2.1 : Sơ đồ chân DS18B20
Điện áp hoạt động từ 3 đến 5VDC.
Chân 1:GND
Chân 2: DQ (truyền tín hiệu)
Chân 3: Nguồn VCC
Có thể đo nhiệt độ từ -55 đến +1250C. Khi lắp vào mạch phải nối chân 2 và chân 3 với điện trở 4k7.
Các đặc tính kỹ thuật cơ bản của DS18B20
Sử dụng giao diện một dây nên chỉ cần có một chân ra để truyền thông.
Độ phân giải khi đo nhiệt độ là 9 - 12bit. Dải đo nhiệt độ -550C đến 1250 C, từng bậc 0,50 C, có thể đạt độ chính xác đến 0,10 C bằng việc hiệu chỉnh qua phần mềm. Rất thích hợp với các ứng dụng đo lường đa điểm vì nhiều đầu đo có thể được nối trên một bus, bus này được gọi là bus một dây (1-wire bus) giống hình dưới đây :
Hình 2.2 phương pháp nối dây của DS18B20
(hình vẽ trên là phương pháp nối của DS18S20,tuy nhiên cũng có thể áp dụng được cho DS18B20)
Không cần thêm linh kiện bên ngoài. Điện áp nguồn nuôi có thể thay đổi trong khoảng rộng, từ 3,0 V đến 5,5 V một chiều và có thể được cấp thông qua đường dẫn dữ liệu. Dòng tiêu thụ ở chế độ nghỉ cực nhỏ. Thời gian lấy mẫu và biến đổi thành số tương đối nhanh, không quá 200 ms.
Mỗi cảm biến có một mã định danh duy nhất 64 bit chứa trong bộ nhớ ROM trên chip (on chip), giá trị nhị phân được khắc bằng tia lazer. Đầu đo nhiệt độ số DS18B20 đưa ra số liệu để biểu thị nhiệt độ đo được dưới dạng mã nhị phân 9 bit. Các thông tin được gửi đến và nhận về từ DS18B20 trên giao diện 1-wire, do đó chỉ cần hai đường dẫn gồm một đường cho tín hiệu và một đường làm dây đất là đủ để kết nối vi điều khiển đến điểm đo. Nguồn nuôi cho các thao tác ghi/đọc/chuyển đổi có thể được trích từ đường tín hiệu, không cần có thêm đường dây riêng để cấp điện áp nguồn.
Mỗi vi mạch đo nhiệt độ DS18B20 có một mã số định danh duy nhất, được khắc bằng laser trong quá trình chế tạo vi mạch nên nhiều vi mạch DS1820 có thể cùng kết nối vào một bus 1-wire mà không có sự nhầm lẫn. Đặc điểm này làm cho việc lắp đặt nhiều cảm biến nhiệt độ tại nhiều vị trí khác nhau trở nên dễ dàng và với chi phí thấp.
Theo chuẩn 1-wire độ dài tối đa cho phép của bus là 300 m.
Số lượng các cảm biến nối vào bus không hạn chế. Để nâng cao độ phân giải lên trên 12 bit ta phải tính toán thêm bằng phần mềm dựa trên các số liệu lưu trữ trên các thanh ghi nhiệt độ, COUNT REMAIN và COUNT PER C trong nhóm các thanh ghi nháp (scratchpad).
Bộ nhớ ROM 64–Bit Của DS18B20: Mỗi cảm biến nhiệt độ DS1820 có một dãy mã 64 bit duy nhất được lưu trữ trong bộ nhớ ROM từ khi sản xuất bằng kỹ thuật lazer.
Hình 2.3: Nội dung giải mã 64 bit trên bộ nhớ ROM
Nội dung dãy mã 64-bit trên bộ nhớ ROM:Như vậy dãy mã được chia ra thành 3 nhóm, trong đó:
8 bit đầu tiên là mã định danh họ một dây, mã của DS1820 là 10h.
48 bit tiếp theo là mã số xuất xưởng duy nhất, nghĩa là mỗi cảm biến DS1820 chỉ có một số mã.
8 bit có ý nghĩa nhất là byte mã kiểm tra CRC (cyclic redundancy check), byte này được tính toán từ 56 bit đầu tiên của dãy mã trên ROM .Để truy cập lên cảm biến một dây DS1820 ta phải sử dụng hai nhóm lệnh: các lệnh ROM và các lệnh chức năng (function commands) bộ nhớ, các lệnh này có thể được mô tả ngắn gọn như sau: Sau khi thiết bị chủ (thường là một vi điều khiển) phát hiện ra một xung presence pulse, nó có thể xuất ra một lệnh ROM. Có 5 loại lệnh ROM, mỗi lệnh dài 8 bit. Thiết bị chủ phải đưa ra lệnh ROM thích hợp trước khi đưa ra một lệnh chức năng để giao tiếp với cảm biến DS18S20.
Lệnh ROM và các lệnh chức năng
Lệnh ROM
READ ROM (33h) :Cho phép đọc ra 8 byte mã đã khắc bằng laser trên ROM, bao gồm: 8 bit mã định tên linh kiện (10h), 48 bit số xuất xưởng, 8 bit kiểm tra CRC. Lệnh này chỉ dùng khi trên bus có 1 cảm biến DS1820, nếu không sẽ xảy ra xung đột trên bus do tất cả các thiết bị slave cùng đáp ứng.
MATCH ROM (55h) :Lệnh này được gửi đi cùng với 64 bit ROM tiếp theo, cho phép bộ điều khiển bus chọn ra chỉ một cảm biến DS1820 cụ thể khi trên bus có nhiều cảm biến DS1820 cùng nối vào. Chỉ có DS1820 nào có 64 bit trên ROM trùng khớp với chuỗi 64 bit vừa được gửi tới mới đáp ứng lại các lệnh về bộ nhớ tiếp theo. Còn các cảm biến DS1820 có 64 bit ROM không trùng khớp sẽ tiếp tục chờ một xung reset. Lệnh này được sử dụng cả trong trường hợp có một cảm biến một dây, cả trong trường hợp có nhiều cảm biến một dây.
SKIP ROM (CCh) : Lệnh này cho phép thiết bị điều khiển truy nhập thẳng đến các lệnh bộ nhớ của DS1820 mà không cần gửi chuỗi mã 64 bit ROM. Như vậy sẽ tiết kiệm được thời gian chờ đợi nhưng chỉ mang hiệu quả khi trên bus chỉ có một cảm biến.
SEARCH ROM (F0h) : Lệnh này cho phép bộ điều khiển bus có thể dò tìm được số lượng thành viên slave đang được đấu vào bus và các giá trị cụ thể trong 64 bit ROM của chúng bằng một chu trình dò tìm.
ALARM SEARCH (ECh) : Tiến trình của lệnh này giống hệt như lệnh Search ROM, nhưng cảm biến DS1820 chỉ đáp ứng lệnh này khi xuất hiện điều kiện cảnh báo trong phép đo nhiệt độ cuối cùng. Điều kiện cảnh báo ở đây được định nghĩa là giá trị nhiệt độ đo được lớn hơn giá trị TH và nhỏ hơn giá trị TL là hai giá trị nhiệt độ cao nhất và nhiệt độ thấp nhất đã được đặt trên thanh ghi trong bộ nhớ của cảm biến.
Lệnh chức năng bộ nhớ: Sau khi thiết bị chủ (thường là một vi điều khiển) sử dụng các lệnh ROM để định địa chỉ cho các cảm biến một dây đang được đấu vào bus, thiết bị chủ sẽ đưa ra các lệnh chức năng DS1820. Bằng các lệnh chức năng thiết bị chủ có thể đọc ra và ghi vào bộ nhớ nháp (scratchpath) của cảm biến DS1820. Khởi tạo quá trình chuyển đổi giá trị nhiệt độ đo được và xác định chế độ cung cấp điện áp nguồn. Các lệnh chức năng có thể được mô tả ngắn gọn như sau:
WRITE SCRATCHPAD (4Eh) : Lệnh này cho phép ghi 2 byte dữ liệu vào bộ nhớ nháp của DS1820. Byte đầu tiên được ghi vào thanh ghi TH (byte 2 của bộ nhớ nháp) còn byte thứ hai được ghi vào thanh ghi TL (byte 3 của bộ nhớ nháp). Dữ liệu truyền theo trình tự đầu tiên là bit có ý nghĩa nhất và kế tiếp là những bit có ý nghĩa giảm dần. Cả hai byte này phải được ghi trước khi thiết bị chủ xuất ra một xung reset hoặc khi có dữ liệu khác xuất hiện.
READ SCRATCHPAD (BEh) :Lệnh này cho phép thiết bị chủ đọc nội dung bộ nhớ nháp. Quá trình đọc bắt đầu từ bit có ý nghĩa nhất của byte 0 và tiếp tục cho đến byte thứ 9 (byte 8 - CRC). Thiết bị chủ có thể xuất ra một xung reset để làm dừng quá trình đọc bất kỳ lúc nào nếu như chỉ có một phần của dữ liệu trên bộ nhớ nháp cần được đọc.
COPYSCRATCHPAD (48h) : Lệnh này copy nội dung của hai thanh ghi TH và TL (byte 2 và byte 3) vào bộ nhớ EEPROM. Nếu cảm biến được sử dụng trong chế độ cấp nguồn l bắt đầu việc đo.
CONVERT T (44h) : Lệnh này khởi động một quá trình đo và chuyển đổi giá trị nhiệt độ thành số (nhị phân). Sau khi chuyển đổi giá trị kết quả đo nhiệt độ được lưu trữ trên thanh ghi nhiệt độ 2 byte trong bộ nhớ nháp. Thời gian chuyển đổi không quá 200 ms, trong thời gian đang chuyển đổi nếu thực hiện lệnh đọc thì các giá trị đọc ra đều bằng 0.
READ POWER SUPPLY (B4h) : Một lệnh đọc tiếp sau lệnh này sẽ cho biết DS1820 đang sử dụng chế độ cấp nguồn như thế nào, giá trị đọc được bằng 0 nếu cấp nguồn bằng chính đường dẫn dữ liệu và bằng 1 nếu cấp nguồn qua một đường dẫn riêng.
Các cách kết nối DS18B20 với vi điều khiển
Hình 2.4 : kết nối “1 dây”
Hình 2.5: kết nối dùng nguồn ngoài
Chương 3
KHÁI QUÁT MODULE RF
Nội dung chính
Các đặc tính của RF module
Chức năng các chân RF module
Các đặc tính của RF module
Bộ thu phát HM-TR được thiết kế cho các ứng dụng cần truyền dữ liệu không dây. Nó có đặc tính là tốc độ dữ liệu cao, khoảng cách truyền xa, tần số có thể lập trình được, cấu trúc khung USART có thể cấu hình được và dòng ở chế độ sleep thấp. Giao thức giao tiếp được tự động điều khiển và hoàn toàn trong suốt với người dùng. Module này có thể thêm vào các hệ thống đã tồn tại sẵn với giá thành thấp,hiệu suất cao và giao tiếp dữ liệu không dây dễ dàng.
1.Điều chế dịch tần số FSK
2.Giao tiếp hai chiều half-duplex
3.Tần số hoạt động 315/433/868/915 Mhz
4.Tần số có thể lập trình được,đươc phép sử dụng các ứng dụng FDMA
5.Tự động điều khiển RF sang USART,tin cậy và dễ dàng sử dụng
6.Cấu trúc khung USART có thể cấu hình được với tốc độ dữ liệu từ 300-19200bps
7.Sử dụng chân ENABLE để điều khiển chu kỳ lặp lại theo những yêu cầu khác nhau của ứng dụng.
8.Hiệu suất cao,khoảng cách truyền xa 300m ở những khu vực trống
9.Giao thức UART với chuẩn TTL /RS232
10.Không cần bộ cộng hưởng RF trong mạch ứng dụng
Hình 3.1: module giao tiếp RF
Chức năng các chân RF module
Cấu trúc chân của RF module như sau:
Hình 3.2:Cấu trúc chân RF module
Chân 1: cung cấp nguồn VDD 5V
Chân 2: xuất dữ liệu (DTX) ra khỏi module, được nối với chân thu RX của vi xử lý
Chân 3: nối đất GND
Chân 4: nhận dữ liệu (DRX) tới module,được nối với chân phát TX của vi xử lý
Chân 5: cấu hình các thông số cho RF module (CONFIG). Khi bật nguồn nếu chân này ở mức cao thì nó sẽ chuyển vào mode config. Khi giao tiếp thì chân này được đặt ở mức thấp.
Chân 6: Khi RF module đang hoạt động bình thường, nếu chân này được đặt mức thấp thì nó sẽ chuyển sang chế độ sleep ngay lập tức. Khi nó được đặt mức cao (ENABLE) thì RF module hoạt động lại bình thường.
Để cấu hình cho RF module ta nối mạch theo sơ đồ sau:
Hình 3.3:Kết nối RF
Ta dùng phần mềm HM-TR parameter setup để cấu hình cho RF module:
Hình 3.4: Setup cấu hình cho RF
Write: lưu cấu hình mới cho RF module
Read: đọc cấu hình hiện tại trong RF module
Default: khôi phục lại cài đặt gốc cho RF module
Chương 4
GIỚI THIỆU GSM MODEM VÀ TẬP LỆNH AT
Nội dung chính
Giới thiệu về tập lệnh ATcommand
4.1.1 Sơ đồ nhân của GSM modem
4.1.2 Kết nối anten
4.1.3 Nguồn cung cấp cho kết nối
4.1.4 Các chân kết nối của GSM modem
Giới thiệu về kết nối GSM modem và RS232
Giới thiệu về kết nối GSM modem và RS232
Sơ đồ nhân của GSM modem
Hình 4.1: Sơ đồ khối bên trong GSM modem.
Đặc tính kỹ thuật của GSM modem
Kết nối anten
Hình 4.2: kết nối SMA cho anten
Kết nối anten là một loại kết nối SMA với một điện trở RF là 50Ω
Nguồn cung cấp cho kết nối
Hình 4.3 Nguồn cung cấp kết nối
Bảng 4.1: chân nguồn và ngoại vi
Chú ý: Cả hai pin 3 và
Các file đính kèm theo tài liệu này:
- Quản lý thiết bị sử dụng công nghệ gsm.doc