2012年8月31日星期五

行動記事放雲端 祭出史上最好康


台灣大哥大個人雲祭出史無前例的好康,凡是台灣大哥大用戶,皆可免費獲得一年份價值1350元(45美元)的Evernote專業版軟體,即日起開放限時搶領至930日,預估將有超過200萬智慧型用戶受惠。

台灣大哥大營運總經理賴弦五(左)與Evernote CEO Phil Libin宣佈獨家合作,提供給台灣大用戶一年免費專業版的Evernote服務。


台灣大哥大提供各式各樣個人行動智慧雲服務,包括myMusicmyBookmyPhoto等,讓人人都可輕易上手。
 
本文来自:中時電子報
 

 



[Final] W5100E01-AVR是什麼?怎麼用?(八)(用戶手冊V1.0版)


W5100E01-AVR是為AVR開發者提供的W5100評估板。本文是W5100E01-AVR的使用者手冊第八部分,也是最後一部分了。由於本次手冊內容比較多,分次講給了大家,謝謝大家的耐心閱讀。還是希望對大家有幫助嘍~





4. 硬件设计向导
4.1 方块图
<图4‑1: 评估板方块图>
 
4.2 模块描述
评估板由W5100E01-AVR(EVB底板)和PM-A1(AVR模块)组成。
以下9个块组成了评估板。
-PM-A1
-字符LCD(LCD)
-PAL
-SRAM
-RS232端口
-扩充板接口
-功率调节器
-用于系统复位的3.3V电源
 
4.2.1. PM-A1
PM-A1(AVR模块)由Atmega128处理器、74HC573地址锁存器、8MHz外部晶振、底板(JP4,JP5)接头、ISP(JP3)和JTAG(JP1)接口。
为了便于利用EVB板开发,除了ALE(PG2),所有的端口引脚都通过模块接口(JP4,JP5)连接MB-EVB-X2,接口的引脚描述如<表4-1:MB-EVB-X2模块引脚描述>所示。
AVR ISP (JP3) 引脚映射
 
4.2.2. LCD
LCD用于调试和系统状态显示。
LCD接口(JP3)引脚描述如下表所示。
 
在LC1624的规格文件中,LCD使用的电压范围是-0.3V~13V。为了适应这个数据,需要使用R6(电压5V、最大上拉电阻10千欧)和R7(下拉接地电阻820欧),在实际应用中,LCD显示经过R6调整后变得明显。更多关于LC1624,参见“LC1624 Specifications”文档。
 
4.2.3. PAL
PAL用于给评估板使用的各种芯片和模块制作启动信号,PAL元素在ATMEL公司的ATF16V8B-15PL产品在使用,该产品使用了10个输入引脚和8个I/O引脚。
PAL制作有关SRAM(/CS_RAM)、LCD(LCD_E)和W5100(/CS_IINCHIP)的芯片选择或启动信号。输出和PAL_OUT_0~PAL_OUT_4信号通过扩展接口为后续扩展预留空间。
 
4.2.4. SRAM
SRAM大小为32K字节,作为Atmega128的外部存储器使用。
4.2.5. RS232端口
RS232端口是Atmega128支持的双向串口USARTs接口,
评估板使用引脚9的DSUB的male类型(P1,P2)连接器。
 
4.2.6. 扩展板接口
扩展板接口的设计是为了便于使用评估板开发。多数的Atmega128端口引脚、PAL (PAL_OUT_0~PAL_OUT_4)的输出信号以及许多预留的引脚都与外界板接口连接。
Atmega128中没有连接到外接板接口的信号是7 RXD1(PD2)、TXD1(PD3)、RXD0(PE0)、TXD0(PE1)、LED0(PG3)、LED1(PG4)、/I2CHIP_IRQ(PE4)。
 
外接板接口连接器是Hirose公司的“PCN10BK-96S-2.54DS”,属于96引脚的母口直角形连接器,公口型的连接器在这里与“PCN10-96P-2.54DS”成对。
 
4.2.7. 功率调节器
评估板通过电源适配器得到5V电压,板内部使用的电压时5V和3.3V。调节器是LT1963EST-3.3(U1),可以使用Toggle Switch(SW1)关闭调节器。
 
4.2.8.用于系统复位的3.3V电源
使用RC模拟电路实现手控复位和上电复位。
4.3. 原理图
 
4.3.1 W5100E01-AVR
请参考光盘文件中的“W5100E01-AVR.DSN”。
4.3.2. PM-A1
请参考光盘文件中的”PM-A1.DSN”。
4.4. PAL
在评估板中,PAL用于创建芯片选择(模块可用)。
评估板的地址映射与<图3.1:评估板存储器映射>所示相同。
评估板支持3路信号(芯片选择),与评估板的地址映射一致。
评估板提供VHDL(硬件描述语言)编码,对使用PAL元素的开发者来说,推荐使用CUPL,因为PAL编译器是免费软件。在简单的注册后,可以使用ATMEL公司的WINCUPL。
需要使用的“AWINCUPL.EXE”可以在ATMEL的主页下载。
用法请参考“AVR工具指南.pdf”。
 
4.4.1. IO定义
以下是VHDL的源代码
以下是CUPL的源代码
 
4.4.2. SRAM外部区域
SRAM外部区域从0x0000到0x7fff。
以下是制作SRAM CS的VHDL源代码。
 
4.4.3. LCD区域
LCD从0x9000到0x9400。
同时使用WR和RD信号控制计时器。
 
4.4.4. W5100区域
在W5100中,地址被分成两部分相同的芯片。
想了解更多,请参考“W5100 Datasheet”。
对于VHDL源码,参见光盘中的“EVB_PAL.VHD”。
对于CUPL源码,参见光盘中的“EVB_PAL.PLD”。
编译时请参考“AVR工具指南.pdf”。
 
4.5 零件清单
 
4.5.1. W5100E01-AVR零件清单
请参考光盘中的“W5100E01-AVR_PARTLIST.PDF”。
 
4.5.2. PM-A1零件清单
请参考光盘中的“PM-A1_PARTLIST.PDF”。
 
4.6. 实体规格
 
4.6.1. 功耗
评估板的每个部件的功耗如下表所示。
总功耗为243mA X 5V = 1215mW。
 
 
 
這部分內容終於講完了,下次我會帶來更優質的資訊來跟大家見面,還請多多關照喔!
 
更多有關W5100的帖子請進入我們的官方網站或官方部落格進行查看。
 

無線技術嵌入人體可望成真?


無線連接技術在目前已經相當普及了,但隨著越來越多的設備連接上網,人體會是無線連接技術的終極應用領域嗎?
在這種個人層級上將我們自己連接上網後,當然不是要讓其他人在我們走路經過時利用我們的 BAN 來收發email,而是能夠即時從我們的身體直接傳送大量生物測量資料給我們的醫生。

「遠距醫療」(telehealth)的概念並不是最近才有的。隨著目前的電信技術和可穿戴式嵌入式感測器技術發展得越來越先進,而要傳送我們的血壓、血糖濃度、溫度、重量與心跳等更多數據給健康照護專業人員進行監測時卻變得沒那麼簡單了。

此外,在2019年以前,估計美國約有32%以上的人口將會超過65歲,而在2025年時,全球約有12億人口將超過50歲以上。我們的人口正迅速地高齡化,而這一壓力將使我們無法再安於現行的醫療保健模式。

包括Continua健康聯盟等組織正號召相關業界的合作夥伴組成一個產業聯盟,但究竟採用哪些無線技術最能達到目的仍然是個問題,目前針對藍牙、藍牙低功耗(BLE) ANT Zigbee GPRS EDGE GSM 乙太網路等各種無線技術均展開密切評估與觀察。

儘管將無線技術嵌入人體中的想法聽起來或許有一點可怕,但醫療產業顯然正高度關注如何有效實現這個目標,以減輕一些目前所面臨的挑戰──宜早不宜遲。只是在人體數位化連接變成一種標準現實以前,業界仍然還有好長的一段路要走。

(參考原文:Human hotspots wireless for your bodyby Sylvie Barak)
 

 

2012年8月30日星期四

W5100E01-AVR是什麼?怎麼用?(七)(用戶手冊V1.0版)

W5100E01-AVR是为AVR开发者提供的W5100评估板。本文是W5100E01-AVR用户手册的第七部份,因为这个用户手册内容比较多,所以就分了很多部分,一一给大家讲,不要没有耐性噢~ 我的帖子还是希望对大家有帮助。今天我们接着昨天的内容继续介绍:


第六部分在这里W5100E01-AVR是什么?怎么用?(六)(用户手册V1.0版)



3.2.6.6.6 DNS客户端

在介绍DNS客户端设置之前,让我们简要的看一下DNS(域名系统)。
 
DNS系统用于将因特网域名转换成因特网IP地址,反之亦然。DNS由域名服务器和域名解析模块组成,域名服务器包含IP地址与域名之间的映射图,域名解析模块通过给域名服务器传输查询接收查询结果。
 
域名解析模块查询转换成本地域名服务器的IP地址或域名。本地域名服务器通过搜索DB(数据库)接收查询,并响应解析模块。如果域名解析模块找不到需要的信息,本地域名服务器就将接收到的查询发送给上一级域名服务器,接收到的响应就可以发送给域名解析模块。
如<图3.33>所示,DNS查询与DNS响应信息在域名解析系统和域名服务器之间的传送包括5部分,如<图3.34>所示。
Header部分包含固定12字节长度,其他4部分的长度是可变的。除了Header和Question部分,Answer、Authority和Additional部分被称为资源记录(RRs)。每一个Header、Question和RRs都有不同的格式。
DNS信息的Header部分保存信息类型、DNS查询类型和可变长度部分的统计信息。
 
在<图3.35:Header部分格式>中,当DNS信息是域名解析器到域名服务器的请求,QR字段值为0;反之,QR字段得值为1。当DNS信息为查询域名IP地址时,Opcode字段值为0;当它查询域名服务器状态时,Opcode字段值为2。
 
QDCOUNT、ANCOUNT、NSCOUNT与ARCOUNT字段统计可变长度的信息、由Question部分组成的代表区块数、Answer、Authority以及additional部分。组成Question部分的块如<图3.36:Question部分格式>所示,组成Answer、Authority和Additional部分的块如<图3.37>所示。
 
举例来说,如果QDCOUNT是1,ANCOUNT是0,NSCOUNT是10,ARCOUNT是10,那么组成Question部分的块如<图3.36:Question部分格式>所示。Answer、Authority和Additional部分由10块组成,如<图3.37>所示。
 
<图3.37>的NAME字段、<图3.36>的QNAME字段与RDDATA字段也可以得到可变长度。QNAME与NAME字段是可变长度字段,组成的格式和他们处理的每一个字段如<图3.36>所示。RDDATA可变长度字段和进程使用RDLENGTH字段的数据长度。
想了解更多,参见RFC1034和RFC1035。
 
DNS信息由<表3-38>所定义的数据类型操作,参见“inet/dns.h”。
如<图3.33>所示,DNS查询与DNS响应信息在域名解析系统和域名服务器之间的传送包括5部分,如<图3.34>所示。
 
域名解析模块基于gethostbyaddr()函数和gethostbyname()函数运作。gethostbyaddr()函数负责将因特网IP地址转换成因特网域名,gethostbyname()的功能正好相反。gethostbyaddr()函数和gethostbyname()函数测试域名服务器IP地址的设置和搜索W5100连接域名服务器所需信道。如果W5100的闲置信道存在,gethostbyaddr()函数和gethostbyname()函数用‘BYNAME’或‘BYIP’元素调用dns_query()。
 
更多gethostbyaddr() 函数和gethostbyname()函数的例子,参见3.2.5.3.章——Ping请求程序。
 
实际与域名服务器的连接是通过dns_query()函数执行的,gethostbyaddr()函数和gethostbyname()函数只负责报告dns_query()函数的结果。
 
dns_query()函数用于初始化域名服务器间的工作缓存区并基于‘BYNAME’和‘BYIP’查询类型创建Question部分的QNAME。如果查询类型是‘BYNAME’,那么当使用IP地址查询域名时,域名可以当成QNAME使用而不需要转换。
 
当查询类型是‘BYIP’时,那么当使用IP地址查询域名时,需要将IP地址转换成IP地址字符串,并在改变的IP地址字符串添加“in-addr.arpa”后使用QNAME。创建完QNAME后,需要为域名服务器间的工作创建UDP Socket,并通过调用dns_make_query()函数创建DNS请求信息。如果DNS请求信息被成功创建,就通过UDP Socket发送给域名服务器。发送完DNS请求信息后,它就接收DNS响应信息或等待,直到等待时间结束。
 
如果在等待期间从域名服务器接收到DNS响应信息,就使用dns_parse_response()函数分析接收到的DNS响应信息,dns_query()函数会基于查询类型返回IP地址或域名。
 
<图3.39>是dns_query()函数的流程图。
 
<图3‑39: dns_query()函数>
<图3‑40: dns_makequery()函数>
 
dns_makequery()函数创建需要发送给域名服务器的DNS请求信息。因为DNS请求信息只能通过Header和Question部分查询,dns_makequery()函数不需要创建RRs部分。如果你在dns_makequery()函数中查看Header部分,首先它将ID字段值与在域名服务期间工作的信息设置相同,这里ID设置成0x1122。为进一步实现域名服务器间的工作,ID值加1。QR、Opcode、AA、TC和RD字段通过MAKE_FLAG0()函数分别设置成QR_QUERY、OP_QUERY/OP_IQUERY、0、0、1,RA、Z和RCODE字段通过MAKE_FLAG1()函数分别设置成0、0、0。
因为count字段中,QDCOUNT、ANCOUNT、NSCOUNT和ARCOUNT都只有一个question,因此分别设置成1、0、0、0。
让我们来看一下Question部分,QNAME字段用于设置IP地址字符串。域名和IP地址字符串由1 byte的标签和最大可达63 byte的标签组成。为了识别QNAME的可变长度,QNAME字段通常以0作为结尾。<图3.41>所示是QNAME字段中,域名为www.wiznet.co.kr的实际传输例子。
因为count字段中,QDCOUNT、ANCOUNT、NSCOUNT和ARCOUNT都只有一个question,因此分别设置成1、0、0、0。
让我们来看一下Question部分,QNAME字段用于设置IP地址字符串。域名和IP地址字符串由1 byte的标签和最大可达63 byte的标签组成。为了识别QNAME的可变长度,QNAME字段通常以0作为结尾。<图3.41>所示是QNAME字段中,域名为www.wiznet.co.kr的实际传输例子。
 
Question部分的QTYPE字段需要设置成‘TYPE_PTR’,当它保存的域名认为是QNAME时,它的IP地址设置成‘TYPE_A’时,因为它包含在网络中,因此QCLASS字段需要设置成‘CLASS_IN’。
 
<表3-41 >是在QTYPE & QCLASS字段使用的常量定义。
<图3‑42: dns_parse_response()函数>
 
<图3.42> 所示的dns_parse_response()函数分析了通过域名服务器接收的响应信息。dns_parse_response()函数检查发送给域名服务器的ID与响应信息的ID是否相同,它也检测接收到的响应信息是否为通过检查Header部分的QR字段的响应信息。如果接收到的信息是域名服务器的响应,改变的成功与否决定于检查Header部分的RCODE字段。
<表3-42>所示为RCODE字段使用的常量定义。
 
如果RCODE是RC_NO_ERROR,可变长度部分,例如Question、Answer、Authority和Additional部分被解析,因为在Answer部分设置了必要信息被分析和处理,而其他部分没有。如果你需要Authority和Additional部分的信息,你可以通过自己很轻松的获取。
 
Question部分通过调用dns_parse_question()函数处理Header部分的次数与QDCOUNT一样。Answer部分通过调用dns_parse_question()函数处理部分的次数与ANCOUNT一样多。
 
<图3‑43: dns_parse_question()函数和dns_answer()函数>
 
dns_parse_question()函数分析和处理Question部分。在DNS请求信息的Question部分并没有实际的信息,但是它必须被处理以获取Answer部分的开始位置。因为Question 部分的QNAME字段得到可变长度,parse_name()函数跳过了处理QNAME字段可变长度的过程、QTYPE和QCLASS字段。
 
dns_answer()函数分析和处理Answer部分。Answer部分在转换确实产生作用时,在Answer部分的TYPE字段执行适当的程序。
 
Answer部分的TYPE字段只有一种值,而不是来自TYPE_A 或TYPE_PTR,如<表3-41 : QTYPE & QCLASS字段的常量定义>所示。如果域名变成IP地址,它可以从TYPE中得到改变的IP地址,域名可以从TYPE_PTR中获取,改变的域名或IP地址也可以通过parse_name()函数加工和提取。
 
<图3‑44: parse_name()函数>
 
parse_name()函数处理Question部分的QNAME字段或RRs部分的NAME、RDDATA字段。QNAME、NAME、RDDATA字段大多数的组成如<图3.41:Question 部分的QNAME 字段传输实例>所示,但是,它可以被压缩从而减少DNS信息的大小。压缩方法为2字节压缩,如果第1个字节——高字节的2位是‘11’,这就描述标签被压缩了。它包含第1个字节的偏移量,除了高字节的2位和第2个字节。
 
这个偏移量是DNS信息的偏移量,表示从DNS信息的起点到标签存放位置的实际偏移量。如果压缩方案尝试重新使用已经在DNS信息中使用过的域名,就需要间接设置在DNS信息中的相关域名偏移量。<图3.45>所示为DNS信息压缩方案和应用实例。
 
<图3.45>的压缩方案实例是为了防止“F.ISI.ARPA”、“FOO.F.ISI.ARPA”、“ARPA”和ROOT. “F.ISI.ARPA” 没有压缩的情况下,在<图3.41:Question部分的QNAME字段传输实例>的格式中产生20的偏移量。
 
在“FOO.F.ISI.ARPA,”中,因为剩下的除了“FOO”,都和先前处理的Name字段一样。“FOO”在没有压缩的情况下的处理流程如<图3.41:Question部分的QNAME字段传输实例>所示格式,剩下的名称做位移26处理。ROOT是最高级的域名,它使用0的Label Length字段处理。
 
parse_name()函数在分析Name字段之前,检测Label Length Byte的高字节2位是否为11。如果是‘11’,相关Label就分析DNS信息中Lable所在的偏移量;如果不存在,Label的分析和处理过程如<图3.41:Question部分的QNAME字段传输实例>所示。
 
 
这是本文的第七部分内容,后面还剩下一些部分,我将会在下次帖子中发布,敬请期待噢!希望我的内容对大家有所帮助。
更多有關W5100的帖子請進入我們的官方網站www.iwiznet.cn 或官方部落http://blog.iwiznet.cn/ 查看更多。
 
 

單晶片方案你瞭解嗎?把所有的乙太網功能都用一顆晶片來實現

現在目前所有的具有乙太網功能的單片機,都是和MAC封裝一起的單片機,但要知道,它還需要外加一個PHY,而這個新方案,就產品來說,w5100、 w5200、w5300都含有硬體協定棧和MAC、PHY,而網路單片機w7100 w7200 w7100A(單晶片方案,把所有的乙太網功能都用一顆晶片來實現)就是把單片機也封裝在了一起。

傳統的方案來說,單片機裡面需要運行一個軟體協定棧,然後加個MAC、PHY。
而這個方案就用硬體的邏輯電路就可以把所有的乙太網功能都用一顆晶片來實現,設計簡單、易於使用,也便於管理。

網絡單片機iMCU W7200,先給大家介紹下嘍!

內嵌8051單片機 + 硬體TCP/IP協定棧 +32Bit Cortex M3+ 10/100 高速乙太網路MAC/PHY


iMCU W7200 是一款集成了硬體TCP/IP協定棧的ARM Cortex-M3微處理器。內有20KB的
SRAM和128KB的FLASH以及32KB的乙太網RX/TX緩存。

更多的資料信息,進網站看看吧~

http://www.wiznettechnology.cn/


工科女的自嘲:聰明的女生,長大後都變成了男人!!


我,理工科,研究生,女的。

 

        從今天早上起,我就一直被一個問題糾結到現在。

 

        我九點起來,十點出門,刷牙洗臉穿衣服不超過十分鐘,也就是說,我花了五十分鐘,還是沒能成功的刷上一層正常的睫毛膏。我可以花兩分鐘焊接一個176腳的 DSP晶片,每一個腳的寬度都不會超過我的睫毛,兩分鐘我可以均勻的刷176個腳的焊錫,但我花20分鐘都沒辦法刷勻我絕對不超過176根的眼睫毛!雖然 一直被玩笑,但我今天真的覺得,我可能真不是個女的。

 

        前天晚上走在回宿舍路上,和師妹對話:

 

       我:晚上回去把打毛球的充一下電,我用下。

 

       師妹:好,可是那個電池現在不太好,充一晚上也只能用個半小時。

 

       我:哦,是5V供電的麼?是的話我們可以帶個開關電源回去,直接連著用。

 

       師妹:……

 

       好吧,我覺得我可能真的不是一個女的。

 

       回想起情人節晚上,吃飯時見了男朋友兄弟的老婆,目測不超過95斤,外套沒注意,脫了外套穿黑色花邊襯衫,頭髮挽起來,精緻妝容,笑容甜美,喝卡布奇諾。 我費心的買了一件終於不是黑色的大衣,結果還不堪的起了一身毛球,因為怕冷,大衣裡面的毛衣裡面還有一件棉衣,披頭散髮,頭髮下面因為燙卷又用了洗髮皂的 緣故,已經好久沒有梳開了,妝容就更別提了,純裸妝,真心純裸妝。

 

       裝逼的點了個卡布奇諾,喝了一口,果斷換了加冰可樂。問他們晚上去看什麼電影,小女子悠悠告訴我們說去看LOVE。被問到下午我倆去看了什麼電影,男朋友無奈的:地心歷險記2,是她要看的。親愛的,我真心是給你丟人了……

 

       好吧,我覺得我確實可能不是女的。

 

       我到底是從什麼時候開始不是女的了呢?

 

       小學的時候還是臭美的,穿裙子,這時候估計還是女的。初中了,細細瘦瘦的,應該也還是女的。高中,好像就沒再穿過裙子了,然後,被作為學習好的,聰明的一類,選擇了理工科。

 

        後來,可能就是我悲劇的開始。媽媽會對姐姐說:穿好衣服出去買點菜。穿好衣服出去買個饃。穿好衣服出去買……媽媽會對我說:穿個舊衣服去地下室幫你爸抬個啥。家裡啥啥壞了,你看看怎麼回事……

 

       上大學以後,在大街上能讓我駐足回頭的,不是黑絲美女就是光腿美女。悲催的想起一個週末,我和室友在樓下洗自行車(借的,被我倆騎到泥巴裡,不洗乾淨不好意思還),看著文科的美女們,一個個花枝招展的打著小陽傘出去約會了……

 

        好吧,我應該真不是個女的。

 

        大四畢業,最多的行李就是被子,無數的被子,原諒我來自寒冷的北方,卻受不了南方的冷。真正女生的行李,牛逼的我見過光鞋盒就不下40個的,我他媽鞋可能就只有四雙!還大都是運動鞋!就一雙女人一點的單鞋,還被我穿去爬了一趟紫金山,毀了……

 

       好吧,我開始接受自己不是個女的了。

 

       今年寒假回學校,路上聽MP3,發現帶的大耳機夾耳朵,帶了的小耳機又是電話上的耳機,插著試了試發現介面倒是一樣,就是只能聽見伴奏,要按下通話鍵才聽 得到歌聲,可是又不能一直按著。果斷拆開,看到通話鍵是個小觸點開關,撕了一點紙,疊好,按在開關上,再把殼子裝好,開關果斷壓住,搞定!

 

       躺在鋪上聽著歌,一股悲涼油然而生啊……

 

       好吧,我真心不是個女的!

 

       現在看來,也許在男生眼中,女生 有才就是缺德。我拆裝手機、筆記本、耳機,修理電器,都不如能判斷一件大衣是不是起毛球來的有魅力。我依舊還是不會化妝,依舊還是喜歡看美女,依舊還是喜 歡搗鼓電路,依舊還是喜歡喝可樂,最喜歡吃的是洋速食,看不懂新潮的裝扮,冬天穿衣服只希望不會凍著,夏天下定決心改頭換面而買的衣服都沒穿出過門,兩條 長裙只能拿來當睡衣……

 

       好吧,我是爺們,純的。

 

       我可以自己修電腦,自己裝軟體,自己下電影。我可以一個人吃飯,可以幾個月不逛街,可以買到的衣服功能僅限於遮羞和禦寒。我可以自己提大包小包大行李,逛 超市買兩箱牛奶也絕對搬得回來。我可以一個人在異鄉平安順利的度過七個年頭,我強大到足夠照顧自己,也許還能順帶照顧別人。想你或者想家的時候我也會哭會 難受,聽到有人向你示好我可以裝的很大度,我可以不吃醋,假裝不在乎,但真心話我就不告訴你,覺得失了大氣。

 

       好吧,我是個有些懶,有點胖,不打扮,不好看,感情小遲鈍,工作精明,生活獨立,內心軟弱的理工科研究生,性別不詳。

 

       是不是聰明一點的理工科女生,都變成了男人……